:root{--bg:#f7f9fc;--card:#fff;--line:#e6ebf1;--text:#0f172a;--muted:#64748b;--green:#17342d;--green2:#18775f;--accent:#d7c18a;--soft:#eef6f3;}
.portal-body{min-height:100vh;margin:0;background:var(--bg);color:var(--text);font-family:"Source Sans 3",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
.portal-login-card{width:min(440px,calc(100vw - 32px));margin:9vh auto;background:var(--card);border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:0 24px 70px rgba(15,23,42,.12)}
.portal-login-card img{height:58px;width:auto;display:block;margin:0 auto 24px}.portal-login-card h1,.portal-hero-card h1,.portal-card h2{font-family:"Source Sans 3",system-ui,sans-serif;line-height:1.05;margin:0 0 12px;font-weight:600;letter-spacing:-.035em;color:var(--text)}
.portal-login-card h1{font-size:36px;text-align:center}.portal-login-card p{text-align:center;color:var(--muted);font-weight:430}.portal-form{display:grid;gap:16px;margin-top:24px}.portal-form label{display:grid;gap:7px;font-weight:600;font-size:13px;color:#334155}.portal-form input{width:100%;border:1px solid #dbe3ec;border-radius:14px;background:#fff;padding:14px 16px;font:inherit;color:var(--text);box-sizing:border-box}.portal-form button{border:0;border-radius:999px;background:linear-gradient(135deg,#10b981,#0f7a5d);color:#fff;font-weight:720;padding:14px 24px;cursor:pointer;box-shadow:0 14px 30px rgba(16,185,129,.22)}
.portal-alert{border-radius:18px;padding:14px 16px;font-weight:600}.portal-alert.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.portal-back{display:block;margin-top:22px;color:#475569;font-weight:600;text-decoration:none;text-align:center}.portal-back:hover{color:var(--text)}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:#0f7a5d;font-weight:600;font-size:11px;margin:0 0 10px!important}.portal-topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px clamp(18px,5vw,54px);background:rgba(247,249,252,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);color:var(--text)}
.portal-topbar strong{font-weight:600}.portal-topbar span{margin-left:10px;color:var(--muted);font-size:12px;font-weight:600}.portal-topbar nav{display:flex;gap:10px}.portal-topbar a{color:var(--text);text-decoration:none;font-weight:600;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 14px;box-shadow:0 8px 20px rgba(15,23,42,.04)}
.portal-shell{width:min(1240px,calc(100vw - 32px));margin:28px auto 80px;display:grid;gap:22px}.portal-hero-card,.portal-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:26px;box-shadow:0 16px 45px rgba(15,23,42,.06)}.portal-hero-card{background:linear-gradient(135deg,#fff,#f4faf7)}.portal-hero-card h1{font-size:42px}.portal-hero-card p,.portal-card p{color:var(--muted);font-weight:430}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.portal-card span{display:block;text-transform:uppercase;letter-spacing:.14em;color:#0f7a5d;font-weight:600;font-size:11px;margin-bottom:12px}.portal-card h2{font-size:24px}.portal-card.wide{grid-column:1/-1}.message-list{display:grid;gap:14px;margin-top:18px}.message-list article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.message-list h3{margin:0 0 8px;color:var(--text);font-weight:720}.message-list p{margin:0 0 10px}.message-list time{font-size:12px;color:var(--muted);font-weight:600}
.portal-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 20px}.portal-calendar-toolbar a{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d7dee8;border-radius:999px;padding:10px 14px;text-decoration:none;font-weight:600;color:var(--text);background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.04)}.portal-calendar-toolbar strong{font-size:24px;letter-spacing:-.025em}.portal-month-calendar{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.04)}.portal-calendar-weekday{background:#f8fafc;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:12px 14px;border-right:1px solid var(--line)}.portal-calendar-weekday:nth-child(7){border-right:0}.portal-calendar-day{min-height:132px;padding:10px;border-right:1px solid var(--line);border-top:1px solid var(--line);background:#fff}.portal-calendar-day:nth-child(7n){border-right:0}.portal-calendar-day.muted{background:#f8fafc}.portal-calendar-day.today{background:#fbfdfc}.portal-day-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;color:var(--text);font-weight:600}.portal-calendar-day.today .portal-day-number{background:#17342d;color:#fff}.portal-day-shifts{display:grid;gap:6px;margin-top:8px}.portal-calendar-shift{display:block;background:linear-gradient(135deg,#18775f,#22a078);color:#fff;border-radius:14px;padding:8px 9px;box-shadow:0 8px 18px rgba(23,52,45,.12);overflow:hidden}.portal-calendar-shift strong{display:block;font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:720}.portal-calendar-shift small{display:block;margin-top:3px;color:rgba(255,255,255,.82);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shift-list{display:grid;gap:12px;margin-top:18px}.shift-list article{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.shift-list strong{display:block;color:var(--text);font-size:18px}.shift-list small{display:block;color:#0f7a5d;font-weight:600;margin-top:5px}.shift-list p{margin:0;text-align:right}
@media(max-width:900px){.portal-month-calendar{display:block}.portal-calendar-weekday{display:none}.portal-calendar-day{min-height:auto;border-right:0;padding:14px}.portal-calendar-day.muted{display:none}.portal-calendar-day:before{content:attr(data-date);display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.portal-calendar-toolbar{align-items:stretch}.portal-calendar-toolbar strong{text-align:center;font-size:20px}.portal-calendar-toolbar a{width:auto}.portal-calendar-shift strong,.portal-calendar-shift small{white-space:normal}}
@media(max-width:760px){.portal-topbar{align-items:flex-start;flex-direction:column}.portal-grid{grid-template-columns:1fr}.portal-login-card{padding:28px}.portal-hero-card h1{font-size:34px}.portal-card,.portal-hero-card{padding:22px;border-radius:20px}.shift-list article{display:block}.shift-list p{text-align:left;margin-top:10px}}

/* v2.2 portal uitbreidingen */
.portal-alert.success{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:18px;padding:14px 16px;margin:18px 0;font-weight:700}
.portal-availability-list,.portal-leave-list{display:grid;gap:10px;margin-top:14px}
.portal-availability-list article,.portal-leave-list article{display:grid;grid-template-columns:70px 1fr;gap:6px 14px;align-items:center;background:#f8fafc;border:1px solid #e8eef4;border-radius:18px;padding:12px 14px}
.portal-availability-list small,.portal-leave-list small{grid-column:2;color:#64748b}
.portal-inline-form{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px;margin-top:14px;margin-bottom:16px}
.portal-inline-form .wide{grid-column:1/-1}
.portal-inline-form button{justify-self:start}
.leave-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;background:#eef2ff;color:#3730a3;width:max-content}
.leave-status.approved{background:#dcfce7;color:#166534}.leave-status.declined{background:#fee2e2;color:#991b1b}.leave-status.pending{background:#fff7ed;color:#9a3412}
@media(max-width:700px){.portal-inline-form{grid-template-columns:1fr}.portal-availability-list article,.portal-leave-list article{grid-template-columns:1fr}.portal-availability-list small,.portal-leave-list small{grid-column:auto}}

/* v2.4 portal rooster UX plus */
.portal-calendar-title{display:flex;flex-direction:column;align-items:center;gap:4px}.portal-calendar-title a{font-size:12px;padding:5px 10px;color:#0f7a5d;background:#fff}.portal-calendar-meta{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 2px}.portal-chip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:600;line-height:1.2;background:#f1f5f9;color:#475569}.portal-chip.leave{background:#fff7ed;color:#9a3412}.portal-chip.leave.approved{background:#dcfce7;color:#166534}.portal-chip.leave.pending{background:#ffedd5;color:#9a3412}.portal-chip.available{background:#ecfdf5;color:#047857}.portal-chip.unavailable{background:#fee2e2;color:#991b1b}.portal-calendar-shift{position:relative}.portal-shift-detail{position:absolute;left:8px;right:8px;bottom:calc(100% + 8px);z-index:15;display:none;background:#0f172a;color:#fff;border-radius:14px;padding:10px 12px;box-shadow:0 18px 42px rgba(15,23,42,.26);font-size:12px;line-height:1.45;pointer-events:none}.portal-shift-detail:after{content:"";position:absolute;left:18px;top:100%;border:7px solid transparent;border-top-color:#0f172a}.portal-calendar-shift:hover .portal-shift-detail{display:block}.portal-shift-detail em{font-style:normal;color:#cbd5e1}
@media(max-width:900px){.portal-calendar-toolbar{display:grid;grid-template-columns:1fr 1fr}.portal-calendar-title{grid-column:1/-1;order:2}.portal-calendar-meta{margin-bottom:8px}.portal-shift-detail{display:none!important}.portal-chip{font-size:11px}}

/* v2.5 portal mobiel polish */
*{box-sizing:border-box}
.portal-body{overflow-x:hidden}
.portal-login-card{max-width:440px}
.portal-login-card input,.portal-login-card button{font-size:16px}
.portal-topbar{box-sizing:border-box}
.portal-shell{box-sizing:border-box}
@media(max-width:900px){
  .portal-shell{width:min(100% - 24px,720px);margin:18px auto 56px;gap:16px}
  .portal-topbar{padding:14px 16px;gap:12px}
  .portal-topbar nav{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .portal-topbar a{justify-content:center;text-align:center;padding:10px 12px}
  .portal-hero-card{padding:22px;background:linear-gradient(135deg,#ffffff,#f7fbf9)}
  .portal-hero-card h1{font-size:clamp(30px,9vw,40px)}
  .portal-grid{gap:14px}
  .portal-card{padding:18px;border-radius:20px}
  .portal-card h2{font-size:21px;letter-spacing:-.02em}
  .portal-calendar-card{padding:16px}
  .portal-calendar-toolbar{gap:10px;margin:8px 0 14px;grid-template-columns:1fr 1fr}
  .portal-calendar-toolbar a{padding:10px 12px;font-size:13px;box-shadow:none}
  .portal-calendar-title{padding:2px 0 4px}
  .portal-calendar-title strong{font-size:20px}
  .portal-month-calendar{display:grid;grid-template-columns:1fr;border:0;border-radius:0;background:transparent;box-shadow:none;gap:10px;overflow:visible}
  .portal-calendar-weekday{display:none}
  .portal-calendar-day{display:block;min-height:auto;border:1px solid var(--line);border-radius:18px;background:#fff;padding:13px 14px;box-shadow:0 8px 20px rgba(15,23,42,.045)}
  .portal-calendar-day.muted{display:none}
  .portal-calendar-day:before{content:none}
  .portal-calendar-day.today{border-color:#b9d7ce;background:#f8fffc}
  .portal-day-number{width:auto;height:auto;min-width:34px;padding:7px 10px;margin-bottom:8px;background:#f8fafc;color:var(--text);font-size:13px}
  .portal-calendar-day.today .portal-day-number{background:#17342d;color:#fff}
  .portal-calendar-meta{margin:0 0 8px;gap:5px}
  .portal-chip{font-size:11px;padding:5px 8px}
  .portal-day-shifts{gap:7px;margin-top:8px}
  .portal-calendar-shift{border-radius:14px;padding:10px 12px}
  .portal-calendar-shift strong{font-size:13px;white-space:normal}
  .portal-calendar-shift small{font-size:12px;white-space:normal;line-height:1.35}
  .portal-shift-detail{display:none!important}
}
@media(max-width:560px){
  .portal-body{background:#f6f8fb}
  .portal-login-card{width:calc(100vw - 24px);margin:18px auto;padding:24px 20px;border-radius:24px;box-shadow:0 16px 42px rgba(15,23,42,.1)}
  .portal-login-card img{height:48px;margin-bottom:18px}
  .portal-login-card h1{font-size:30px}
  .portal-login-card p{font-size:14px;line-height:1.55}
  .portal-form{gap:13px;margin-top:18px}
  .portal-form input{padding:14px 14px;border-radius:13px}
  .portal-form button{width:100%;padding:14px 18px}
  .portal-topbar{position:static;border-bottom:1px solid var(--line);background:#fff}
  .portal-topbar div{width:100%}
  .portal-topbar strong{display:block;font-size:15px}
  .portal-topbar span{display:block;margin-left:0;margin-top:2px}
  .portal-shell{width:calc(100vw - 18px);margin:12px auto 42px;gap:12px}
  .portal-hero-card,.portal-card{padding:16px;border-radius:18px}
  .portal-hero-card p,.portal-card p{font-size:14px;line-height:1.55}
  .portal-grid{grid-template-columns:1fr;gap:12px}
  .portal-calendar-card{padding:13px}
  .portal-calendar-toolbar{grid-template-columns:1fr 1fr;gap:8px}
  .portal-calendar-title{grid-column:1/-1;order:-1}
  .portal-calendar-toolbar a{font-size:12px;padding:9px 10px}
  .portal-calendar-title strong{font-size:18px}
  .portal-calendar-title a{width:auto;padding:6px 12px}
  .portal-month-calendar{gap:8px}
  .portal-calendar-day{padding:12px;border-radius:16px}
  .portal-day-number{margin-bottom:6px}
  .portal-inline-form{grid-template-columns:1fr;gap:10px}
  .portal-inline-form button{justify-self:stretch}
  .portal-availability-list article,.portal-leave-list article{padding:12px;border-radius:15px}
  .message-list article{padding:14px;border-radius:16px}
}

/* v2.7 Portal rooster polish */
.portal-calendar-day{transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease}.portal-calendar-day:hover{transform:translateY(-1px);box-shadow:0 14px 32px rgba(15,23,42,.065);border-color:#d7e2ea}.portal-calendar-shift{background:linear-gradient(135deg,#17342d,#2f7d64);border-left:5px solid #e0c487}.portal-calendar-shift strong{letter-spacing:-.01em}.portal-calendar-shift small{line-height:1.25}.portal-leave-list article{border-left:5px solid #f59e0b}.portal-leave-list article:has(.leave-status.approved){border-left-color:#22c55e}.portal-leave-list article:has(.leave-status.declined){border-left-color:#ef4444}.portal-availability-list article{border-left:5px solid #2f7d64}.portal-calendar-card{overflow:visible}
@media(max-width:900px){.portal-calendar-day:hover{transform:none}.portal-calendar-shift{box-shadow:0 8px 18px rgba(23,52,45,.12)}}

/* v2.8 medewerkerkleur in portaal */
.portal-calendar-shift{border-left:6px solid var(--emp-color,#0f766e)!important;background:linear-gradient(135deg,color-mix(in srgb,var(--emp-color,#0f766e) 72%,#111827),var(--emp-color,#0f766e))!important}

/* v2.12 Planning & Verzoeken */
.portal-requests-card{border:1px solid rgba(15,118,110,.14)}
.portal-muted{color:#64748b;margin-top:-.25rem}
.portal-request-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}
.portal-request-form .wide{grid-column:1/-1}
.portal-request-list{display:grid;gap:10px;margin-top:18px}
.portal-request-list article{border:1px solid #e5e7eb;border-radius:16px;padding:14px 16px;background:#fff;display:grid;gap:8px}
.portal-request-list article>div{display:flex;justify-content:space-between;gap:12px;align-items:center}
.portal-request-list span{font-size:.85rem;color:#0f766e;font-weight:700;background:#ecfdf5;border-radius:999px;padding:4px 9px}
.portal-request-list p{margin:0;color:#475569}
.portal-request-actions{display:flex;gap:8px;flex-wrap:wrap}
.portal-request-actions button.secondary{background:#f8fafc;color:#334155;border:1px solid #e2e8f0}
@media(max-width:800px){.portal-request-form{grid-template-columns:1fr}.portal-request-list article>div{align-items:flex-start;flex-direction:column}}

/* v3.0 Virevo Design System */
:root{--primary:#2563EB;--secondary:#6366F1;--accent:#10B981;--soft:#EFF6FF;--dark:#0F172A;--bg:#F6F8FF;--card:#FFFFFF;--line:#DCE6F5;--muted:#64748B;--green:#2563EB;--green2:#6366F1;--gradient:linear-gradient(135deg,#2563EB 0%,#6366F1 52%,#10B981 100%)}
.portal-body{background:radial-gradient(circle at top left,rgba(37,99,235,.10),transparent 28%),linear-gradient(180deg,#f8fbff 0%,#f3f6ff 100%)!important;color:var(--dark)!important;}
.portal-login-card,.portal-hero-card,.portal-card{background:rgba(255,255,255,.94)!important;border-color:var(--line)!important;box-shadow:0 18px 48px rgba(15,23,42,.08)!important;border-radius:28px!important;}
.portal-login-card img{width:210px!important;height:auto!important;}
.portal-login-card h1,.portal-hero-card h1,.portal-card h2{color:var(--dark)!important;font-weight:700!important;letter-spacing:-.04em!important;}
.portal-form button{background:var(--gradient)!important;box-shadow:0 16px 34px rgba(37,99,235,.22)!important;color:#fff!important;}
.portal-form input,.portal-form select,.portal-form textarea{border-color:var(--line)!important;border-radius:16px!important;}
.portal-form input:focus,.portal-form select:focus,.portal-form textarea:focus{outline:none!important;border-color:var(--primary)!important;box-shadow:0 0 0 4px rgba(37,99,235,.12)!important;}
.portal-topbar{background:rgba(255,255,255,.88)!important;border-bottom-color:var(--line)!important;backdrop-filter:blur(18px)!important;}
.portal-topbar img{width:170px!important;max-height:54px!important;height:auto!important;object-fit:contain!important;}
.portal-topbar a{border-color:var(--line)!important;color:var(--dark)!important;background:#fff!important;}
.portal-topbar a:hover{border-color:rgba(37,99,235,.35)!important;color:var(--primary)!important;background:#f8fbff!important;}
.eyebrow,.portal-card span,.portal-calendar-title a,.shift-list small{color:var(--primary)!important;}
.portal-calendar-day.today .portal-day-number{background:var(--gradient)!important;color:#fff!important;}
.portal-calendar-shift{background:linear-gradient(135deg,color-mix(in srgb,var(--emp-color,#2563EB) 70%,#0F172A),var(--emp-color,#2563EB))!important;}
.portal-alert.success{background:#ecfdf5!important;color:#047857!important;border-color:#bbf7d0!important;}.portal-alert.error{background:#fef2f2!important;color:#b91c1c!important;border-color:#fecaca!important;}
.portal-request-list span{background:#eef2ff!important;color:#4338ca!important;}
@media(max-width:560px){.portal-login-card img{width:170px!important}.portal-topbar img{width:145px!important}}
.portal-brand{display:flex!important;align-items:center;gap:14px!important}.portal-brand span{margin-left:0!important;color:var(--muted)!important;font-weight:700!important}.portal-brand img{display:block!important}
@media(max-width:560px){.portal-brand{align-items:flex-start;flex-direction:column;gap:4px!important}}

/* v3.1 Virevo Portal Premium SaaS Shell */
:root{--primary:#2563EB;--secondary:#6366F1;--accent:#10B981;--dark:#0F172A;--bg:#F7FAFF;--line:#E3EAF6;--muted:#667085;--gradient:linear-gradient(135deg,#2563EB 0%,#6366F1 58%,#10B981 100%)}
.portal-body{background:var(--bg)!important;color:var(--dark)!important;font-family:"Source Sans 3",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;}
.portal-topbar{
  position:sticky!important;top:0!important;z-index:20!important;
  background:rgba(255,255,255,.88)!important;border-bottom:1px solid var(--line)!important;backdrop-filter:blur(18px)!important;
  padding:18px clamp(18px,4vw,44px)!important;box-shadow:none!important;
}
.portal-brand img{width:170px!important;max-height:54px!important;object-fit:contain!important;}
.portal-brand span{font-weight:700!important;color:#43546B!important;}
.portal-topbar nav{gap:10px!important;}
.portal-topbar a{border:1px solid var(--line)!important;border-radius:12px!important;background:#fff!important;color:var(--dark)!important;font-weight:700!important;padding:11px 15px!important;}
.portal-topbar a:hover{color:var(--primary)!important;border-color:rgba(37,99,235,.35)!important;background:#F8FAFF!important;}
.portal-shell{width:min(100% - 48px,1240px)!important;margin:26px auto 80px!important;gap:20px!important;}
.portal-hero-card,.portal-card,.portal-login-card{background:#fff!important;border:1px solid var(--line)!important;border-radius:22px!important;box-shadow:0 12px 30px rgba(15,23,42,.055)!important;}
.portal-hero-card{padding:28px!important;}
.portal-hero-card h1,.portal-card h2,.portal-login-card h1{font-family:"Source Sans 3",system-ui,sans-serif!important;font-weight:700!important;letter-spacing:-.045em!important;color:var(--dark)!important;}
.portal-hero-card h1{font-size:34px!important;}
.portal-card{padding:24px!important;}
.portal-card>span,.eyebrow{color:var(--primary)!important;font-weight:700!important;letter-spacing:.11em!important;text-transform:uppercase!important;font-size:11px!important;}
.portal-grid{gap:18px!important;}
.portal-card h2{font-size:26px!important;}
.portal-calendar-card{overflow:hidden!important;}
.portal-calendar-toolbar a,.portal-form button,.portal-request-actions button{border-radius:12px!important;min-height:42px!important;font-weight:700!important;}
.portal-form button,.portal-request-actions button:not(.secondary){background:linear-gradient(135deg,#2563EB,#6366F1)!important;color:#fff!important;box-shadow:0 14px 28px rgba(37,99,235,.22)!important;}
.portal-form input,.portal-form select,.portal-form textarea{border-color:#D7E1F0!important;border-radius:14px!important;min-height:48px!important;}
.portal-month-calendar{border-color:var(--line)!important;border-radius:20px!important;background:#fff!important;}
.portal-calendar-weekday{background:#F8FAFF!important;color:#667085!important;}
.portal-calendar-day{background:#fff!important;}
.portal-calendar-day.muted{background:#F7FAFF!important;}
.portal-calendar-day.today .portal-day-number{background:linear-gradient(135deg,#2563EB,#6366F1)!important;color:#fff!important;}
.portal-calendar-shift{border-radius:12px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--emp-color,#2563EB) 68%,#0F172A),var(--emp-color,#2563EB))!important;box-shadow:0 9px 20px rgba(37,99,235,.16)!important;}
.portal-request-list article{border-color:var(--line)!important;border-radius:18px!important;box-shadow:0 8px 20px rgba(15,23,42,.035)!important;}
.portal-request-list span{background:#EEF2FF!important;color:#4338CA!important;}
.portal-login-card{margin:8vh auto!important;}
.portal-login-card img{width:210px!important;height:auto!important;margin:0 auto 22px!important;}
@media(max-width:900px){.portal-shell{width:calc(100% - 28px)!important;margin:18px auto 56px!important}.portal-topbar nav{grid-template-columns:1fr 1fr!important}.portal-card,.portal-hero-card{padding:18px!important;border-radius:18px!important}}
@media(max-width:560px){.portal-shell{width:calc(100% - 18px)!important}.portal-brand img{width:145px!important}.portal-hero-card h1{font-size:28px!important}.portal-topbar{padding:14px 12px!important}.portal-topbar a{padding:10px 12px!important}.portal-login-card img{width:170px!important}}

/* v3.1d - Virevo Workforce portal brand */
.portal-brand{align-items:center!important;}
.portal-brand span{font-size:12px!important;text-transform:uppercase!important;letter-spacing:.1em!important;color:#667085!important;}
.portal-brand small{font-size:12px;color:#94a3b8;font-weight:700;}


/* v3.1e - brand label polish */
.portal-brand span,.admin-brand span{padding-left:28px!important;text-transform:none!important;letter-spacing:.06em!important;font-size:14px!important;}
.portal-version-hidden,.admin-version-hidden{display:none!important;}
@media(max-width:1050px){.portal-brand span,.admin-brand span{padding-left:0!important;}}


/* v3.1f - login branding polish + kalender medewerkerkleuren */
.portal-body:has(.virevo-login-card){
  min-height:100vh!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 16% 12%,rgba(37,99,235,.28),transparent 30%),
    radial-gradient(circle at 88% 18%,rgba(99,102,241,.24),transparent 28%),
    radial-gradient(circle at 70% 88%,rgba(16,185,129,.18),transparent 30%),
    linear-gradient(135deg,#0F172A 0%,#081631 54%,#111827 100%)!important;
}
.portal-body:has(.virevo-login-card):before{
  content:"";
  position:fixed;
  inset:-35%;
  background:conic-gradient(from 180deg,rgba(37,99,235,.22),rgba(99,102,241,.18),rgba(16,185,129,.14),rgba(37,99,235,.22));
  filter:blur(54px);
  opacity:.55;
  animation:virevoGlow 14s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes virevoGlow{from{transform:translate3d(-2%,1%,0) rotate(0deg)}to{transform:translate3d(2%,-1%,0) rotate(18deg)}}
.virevo-login-card{
  position:relative!important;
  isolation:isolate;
  overflow:hidden!important;
  margin:0!important;
  width:min(92vw,460px)!important;
  padding:38px!important;
  text-align:left!important;
  border:1px solid rgba(255,255,255,.42)!important;
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:blur(22px)!important;
  box-shadow:0 30px 90px rgba(2,8,23,.34)!important;
}
.virevo-login-card:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,#2563EB,#6366F1,#10B981);}
.virevo-login-orb{position:absolute;right:-54px;top:-54px;width:156px;height:156px;border-radius:999px;background:linear-gradient(135deg,rgba(37,99,235,.24),rgba(99,102,241,.20),rgba(16,185,129,.16));z-index:-1;animation:virevoFloat 7s ease-in-out infinite;}
@keyframes virevoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}
.virevo-login-logo{width:210px!important;max-width:100%!important;height:auto!important;margin:0 0 10px!important;display:block!important;}
.virevo-login-product{margin:0 0 24px 34px!important;color:#6366F1!important;font-size:13px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:none!important;}
.virevo-login-card h1{text-align:left!important;font-size:34px!important;margin:0 0 8px!important;}
.virevo-login-card p:not(.virevo-login-product){text-align:left!important;}
.virevo-login-footer{margin-top:28px;padding-top:18px;border-top:1px solid #E3EAF6;display:grid;gap:6px;justify-items:start;color:#64748B;}
.virevo-login-footer img{width:118px!important;height:auto!important;opacity:.9!important;margin:0!important;}
.virevo-login-footer span{font-size:12px;font-weight:600;color:#475569;}
.virevo-login-footer small{font-size:11px;color:#94A3B8;}
.portal-calendar-shift{
  background:linear-gradient(135deg,color-mix(in srgb,var(--emp-color,#2563EB) 72%,#0F172A),var(--emp-color,#2563EB))!important;
  border-left:6px solid var(--emp-color,#2563EB)!important;
  box-shadow:0 8px 18px color-mix(in srgb,var(--emp-color,#2563EB) 24%, transparent)!important;
}
.portal-chip.available{background:#EEF2FF!important;color:#4338CA!important;}
@media(max-width:560px){.virevo-login-card{padding:30px 24px!important}.virevo-login-logo{width:175px!important}.virevo-login-product{margin-left:28px!important}}


/* v3.1g - Virevo login branding polish */
.virevo-login-body,
.admin-body:has(.virevo-login-card),
.portal-body:has(.virevo-login-card){
  min-height:100vh!important;
  overflow-x:hidden!important;
  background:
    radial-gradient(circle at 18% 18%, rgba(37,99,235,.28), transparent 34%),
    radial-gradient(circle at 84% 24%, rgba(99,102,241,.24), transparent 34%),
    radial-gradient(circle at 75% 86%, rgba(16,185,129,.12), transparent 30%),
    linear-gradient(135deg,#EFF6FF 0%,#F8FAFC 44%,#EEF2FF 100%)!important;
  position:relative!important;
}
.virevo-login-body:after,
.admin-body:has(.virevo-login-card):after,
.portal-body:has(.virevo-login-card):after{
  content:"";
  position:fixed;
  inset:-35%;
  pointer-events:none;
  z-index:0;
  background:linear-gradient(115deg,transparent 0 35%,rgba(255,255,255,.42) 47%,transparent 60% 100%);
  transform:translateX(-18%);
  animation:virevoLoginSweep 13s ease-in-out infinite alternate;
}
@keyframes virevoLoginSweep{from{transform:translateX(-20%) rotate(0deg)}to{transform:translateX(16%) rotate(3deg)}}
.virevo-login-card{position:relative!important;z-index:2!important;backdrop-filter:blur(16px)!important;background:rgba(255,255,255,.86)!important;border:1px solid rgba(255,255,255,.72)!important;box-shadow:0 30px 90px rgba(15,23,42,.16)!important;}
.virevo-login-logo{width:260px!important;max-width:100%!important;height:auto!important;margin:0 0 12px!important;display:block!important;}
.virevo-login-product{margin-left:42px!important;}
.virevo-login-footer{display:none!important;}
.virevo-login-brandmark{position:fixed;left:28px;bottom:24px;z-index:3;display:grid;gap:4px;justify-items:start;align-items:end;opacity:.78;color:#475569;font-family:"Source Sans 3",system-ui,sans-serif;animation:virevoBrandFade .8s ease-out both;}
.virevo-login-brandmark img{width:92px;height:auto;display:block;margin:0 0 4px 0;filter:drop-shadow(0 8px 22px rgba(15,23,42,.12));}
.virevo-login-brandmark span{font-size:11px;color:#64748B;line-height:1.2;}
.virevo-login-brandmark strong{font-size:13px;color:#334155;line-height:1.2;font-weight:600;}
.virevo-login-brandmark small{font-size:11px;color:#94A3B8;margin-top:4px;}
@keyframes virevoBrandFade{from{opacity:0;transform:translateY(8px)}to{opacity:.78;transform:translateY(0)}}
@media(max-width:760px){
  .virevo-login-card{margin:28px auto 18px!important;}
  .virevo-login-logo{width:210px!important;}
  .virevo-login-brandmark{position:relative;left:auto;bottom:auto;margin:10px auto 24px;width:min(320px,calc(100% - 40px));justify-items:center;text-align:center;opacity:.72;}
  .virevo-login-brandmark img{width:78px;margin-bottom:2px;}
}
@media(prefers-reduced-motion:reduce){.virevo-login-body:after,.admin-body:has(.virevo-login-card):after,.portal-body:has(.virevo-login-card):after,.virevo-login-orb,.virevo-login-brandmark{animation:none!important}}

/* v3.2 - Portal Professional */
.portal-dashboard-hero{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(260px,360px)!important;align-items:stretch!important;gap:20px!important;background:linear-gradient(135deg,#fff 0%,#F8FAFF 58%,#EEF2FF 100%)!important;}
.portal-hero-next{border:1px solid rgba(37,99,235,.14);border-radius:20px;background:#fff;padding:18px;box-shadow:0 12px 24px rgba(37,99,235,.06)}
.portal-hero-next span,.portal-kpi-card span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;color:#2563EB;margin-bottom:10px}.portal-hero-next strong{display:block;font-size:21px;letter-spacing:-.03em;color:#0F172A}.portal-hero-next small{display:block;margin-top:8px;color:#667085;font-weight:700;line-height:1.45}.portal-mobile-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.portal-mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:16px;background:#fff;border:1px solid var(--line);text-decoration:none;color:#0F172A;font-weight:700;box-shadow:0 8px 18px rgba(15,23,42,.035);text-align:center}.portal-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.portal-kpi-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 10px 26px rgba(15,23,42,.045)}.portal-kpi-card strong{display:block;font-size:34px;line-height:1;letter-spacing:-.05em;color:#0F172A}.portal-kpi-card small{display:block;margin-top:8px;color:#667085;font-weight:700}.portal-dashboard-grid{align-items:stretch}.portal-next-card,.portal-profile-card{min-height:100%}.portal-calendar-day{color:inherit;text-decoration:none;transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease}.portal-calendar-day:not(.muted):hover{position:relative;z-index:2;transform:translateY(-1px);box-shadow:0 12px 26px rgba(37,99,235,.08)}.portal-calendar-day.selected{outline:2px solid rgba(37,99,235,.38);outline-offset:-2px;background:#F8FAFF!important}.portal-day-detail{margin-top:20px;border:1px solid var(--line);border-radius:22px;background:#F8FAFF;padding:20px}.portal-day-detail-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.portal-day-detail-head span{margin:0 0 4px!important}.portal-day-detail-head h3{margin:0;font-size:24px;letter-spacing:-.035em}.portal-day-detail-head a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,#2563EB,#6366F1);color:#fff;text-decoration:none;font-weight:700;box-shadow:0 12px 24px rgba(37,99,235,.2)}.portal-day-shift-list{display:grid;gap:14px}.portal-day-shift-card{background:#fff;border:1px solid var(--line);border-left:7px solid var(--emp-color,#2563EB);border-radius:20px;padding:18px;box-shadow:0 12px 26px rgba(15,23,42,.045)}.portal-shift-main{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.portal-shift-main strong{font-size:22px;letter-spacing:-.035em}.portal-shift-main span{display:inline-flex!important;margin:0!important;color:#4338CA!important;background:#EEF2FF;border-radius:999px;padding:6px 10px;font-size:12px!important;letter-spacing:0!important;text-transform:none!important}.portal-shift-meta{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.portal-shift-meta span{display:inline-flex!important;margin:0!important;color:#475569!important;background:#F8FAFC;border:1px solid #E2E8F0;border-radius:999px;padding:7px 10px;font-size:12px!important;letter-spacing:0!important;text-transform:none!important;font-weight:700!important}.portal-colleague-block{margin-top:14px}.portal-colleague-block h4{margin:0 0 10px;font-size:15px;color:#0F172A}.portal-colleague-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-colleague-list article{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;border:1px solid #E2E8F0;background:#fff;border-radius:16px;padding:12px}.portal-colleague-list i{width:34px;height:34px;border-radius:999px;background:var(--emp-color,#6366F1);box-shadow:0 8px 16px color-mix(in srgb,var(--emp-color,#6366F1) 24%, transparent)}.portal-colleague-list strong{display:block;color:#0F172A}.portal-colleague-list small,.portal-colleague-list em{display:block;color:#667085;font-style:normal;font-size:12px;line-height:1.35}.portal-colleague-list em{margin-top:3px;color:#2563EB;font-weight:700}.portal-empty-day{background:#fff;border:1px dashed #CBD5E1;border-radius:18px;padding:18px;margin:0!important}.portal-day-context{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.request-status.wait-colleague{background:#FEF3C7!important;color:#92400E!important}.request-status.wait-manager{background:#FFEDD5!important;color:#9A3412!important}.request-status.approved{background:#DCFCE7!important;color:#166534!important}.request-status.declined{background:#FEE2E2!important;color:#991B1B!important}.request-status.done{background:#DBEAFE!important;color:#1D4ED8!important}.portal-bottom-nav{display:none}
@media(max-width:900px){.portal-dashboard-hero{grid-template-columns:1fr!important}.portal-mobile-actions{grid-template-columns:repeat(2,1fr)}.portal-mobile-actions a:first-child{grid-column:1/-1}.portal-kpi-grid{grid-template-columns:1fr 1fr}.portal-kpi-card:first-child{grid-column:1/-1}.portal-calendar-day{display:block}.portal-day-number{width:34px;height:34px}.portal-colleague-list{grid-template-columns:1fr}.portal-day-detail-head{align-items:stretch;flex-direction:column}.portal-day-detail-head a{width:100%}.portal-shift-main{display:grid}.portal-shift-main span{width:max-content}.portal-bottom-nav{position:fixed;left:10px;right:10px;bottom:10px;z-index:50;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:rgba(255,255,255,.94);border:1px solid rgba(226,232,240,.95);border-radius:20px;padding:8px;box-shadow:0 20px 46px rgba(15,23,42,.18);backdrop-filter:blur(16px)}.portal-bottom-nav a{display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:14px;text-decoration:none;color:#334155;font-weight:700;font-size:12px}.portal-bottom-nav a:active,.portal-bottom-nav a:hover{background:#EEF2FF;color:#2563EB}.portal-shell{margin-bottom:98px!important}.portal-topbar nav a:first-child{display:none!important}}
@media(max-width:560px){.portal-mobile-actions{grid-template-columns:1fr 1fr}.portal-kpi-grid{grid-template-columns:1fr}.portal-kpi-card:first-child{grid-column:auto}.portal-kpi-card{padding:17px}.portal-calendar-card{padding:14px!important}.portal-month-calendar{border-radius:18px!important}.portal-calendar-day{border-radius:0!important}.portal-day-detail{padding:14px;border-radius:18px}.portal-day-detail-head h3{font-size:21px}.portal-day-shift-card{padding:14px;border-radius:18px}.portal-shift-main strong{font-size:20px}.portal-shift-meta span{border-radius:12px}.portal-request-form{grid-template-columns:1fr!important}.portal-request-list article{padding:14px!important}.portal-bottom-nav{left:8px;right:8px;bottom:8px}.portal-bottom-nav a{font-size:11px}}

/* v3.2a - Portal mobile app polish */
.portal-next-clickable,
.portal-next-card-link{color:inherit;text-decoration:none;display:block;cursor:pointer;}
.portal-next-clickable{transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;}
.portal-next-clickable:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.32);box-shadow:0 18px 34px rgba(37,99,235,.12);}
.portal-next-clickable em{display:inline-flex;margin-top:12px;padding:7px 10px;border-radius:999px;background:#EEF2FF;color:#2563EB;font-style:normal;font-size:12px;font-weight:700;}
.portal-next-card-link small{display:inline-flex;margin-top:10px;color:#2563EB;font-weight:700;}
.portal-mobile-actions a:nth-child(1){background:#EFF6FF!important;border-color:#BFDBFE!important;color:#1D4ED8!important;}
.portal-mobile-actions a:nth-child(2){background:#EEF2FF!important;border-color:#C7D2FE!important;color:#4338CA!important;}
.portal-mobile-actions a:nth-child(3){background:#ECFDF5!important;border-color:#A7F3D0!important;color:#047857!important;}
.portal-mobile-actions a:nth-child(4){background:#F0FDFA!important;border-color:#99F6E4!important;color:#0F766E!important;}
.portal-mobile-actions a:nth-child(5){background:#FEF2F2!important;border-color:#FECACA!important;color:#B91C1C!important;}
.portal-topbar .portal-logout-link{background:#FEF2F2!important;border-color:#FECACA!important;color:#B91C1C!important;}
.portal-product-mark{margin:4px auto 14px;display:flex;align-items:center;justify-content:center;gap:10px;color:#64748B;font-size:12px;font-weight:700;opacity:.86;}
.portal-product-mark img{width:92px;height:auto;object-fit:contain;}
.portal-mobile-week-calendar{display:none;}

@media(max-width:900px){
  .portal-body{background:#F8FAFF!important;}
  .portal-topbar{position:sticky!important;top:0!important;padding:12px 14px!important;border-bottom:1px solid rgba(226,232,240,.9)!important;}
  .portal-topbar nav{display:none!important;}
  .portal-brand{width:100%!important;display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:4px!important;}
  .portal-brand img{width:132px!important;grid-row:1 / span 2;}
  .portal-brand span{justify-self:end!important;font-size:11px!important;padding-left:0!important;color:#2563EB!important;}
  .portal-brand small{justify-self:end!important;max-width:150px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#64748B!important;}
  .portal-shell{width:100%!important;margin:0 auto 104px!important;padding:12px 10px 0!important;gap:14px!important;}
  .portal-hero-card,.portal-card,.portal-kpi-card{border-radius:22px!important;box-shadow:0 10px 24px rgba(15,23,42,.055)!important;}
  .portal-dashboard-hero{padding:18px!important;}
  .portal-dashboard-hero h1{font-size:30px!important;}
  .portal-hero-next{background:linear-gradient(135deg,#FFFFFF,#F8FAFF)!important;}
  .portal-mobile-actions{position:relative;grid-template-columns:repeat(2,1fr)!important;gap:10px!important;}
  .portal-mobile-actions a{min-height:54px!important;border-radius:18px!important;font-size:14px!important;box-shadow:0 10px 22px rgba(15,23,42,.06)!important;}
  .portal-mobile-actions a:first-child{grid-column:auto!important;}
  .portal-kpi-grid{gap:10px!important;}
  .portal-calendar-toolbar{position:sticky;top:74px;z-index:15;background:rgba(248,250,255,.92);backdrop-filter:blur(14px);margin:0 -4px 12px!important;padding:6px 4px 10px;}
  .portal-mobile-week-calendar{display:grid;grid-template-columns:repeat(7,minmax(74px,1fr));gap:8px;overflow-x:auto;padding:2px 1px 12px;margin:0 -2px 12px;scroll-snap-type:x mandatory;}
  .portal-week-day{scroll-snap-align:start;display:grid;gap:5px;align-content:center;min-height:92px;padding:10px 8px;border-radius:18px;text-decoration:none;color:#0F172A;background:#fff;border:1px solid #E2E8F0;box-shadow:0 8px 18px rgba(15,23,42,.045);text-align:center;}
  .portal-week-day span{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700;color:#64748B;}
  .portal-week-day strong{font-size:22px;line-height:1;}
  .portal-week-day small{font-size:10px;color:#2563EB;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .portal-week-day.today{border-color:#93C5FD;background:#EFF6FF;}
  .portal-week-day.selected{background:linear-gradient(135deg,#2563EB,#6366F1);color:#fff;border-color:transparent;box-shadow:0 14px 28px rgba(37,99,235,.22);}
  .portal-week-day.selected span,.portal-week-day.selected small{color:rgba(255,255,255,.88);}
  .portal-month-calendar{display:none!important;}
  .portal-calendar-card{overflow:visible!important;}
  .portal-day-detail{margin-top:8px!important;background:#fff!important;}
  .portal-product-mark{padding:12px 0 4px;margin-bottom:2px;}
  .portal-product-mark img{width:78px;}
  .portal-bottom-nav{grid-template-columns:repeat(5,1fr)!important;border-radius:24px!important;padding:7px!important;}
  .portal-bottom-nav a{min-height:46px!important;border-radius:17px!important;font-size:11px!important;}
  .portal-bottom-nav a.danger{background:#FEF2F2!important;color:#B91C1C!important;}
  .portal-bottom-nav a.danger:hover,.portal-bottom-nav a.danger:active{background:#FEE2E2!important;color:#991B1B!important;}
}

@media(max-width:560px){
  .portal-shell{padding-left:8px!important;padding-right:8px!important;}
  .portal-mobile-week-calendar{grid-template-columns:repeat(7,72px);}
  .portal-week-day{min-height:88px;}
  .portal-product-mark{font-size:11px;}
  .portal-product-mark img{width:70px;}
  .portal-bottom-nav a{font-size:10px!important;}
}

/* v3.2b - Portal mobile app shell precision polish */
.portal-header-product{display:none;}
@media(max-width:900px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important;}
  *{box-sizing:border-box;min-width:0;}
  .portal-body{min-height:100svh!important;background:#F6F9FF!important;-webkit-text-size-adjust:100%;overscroll-behavior-y:none;}
  .portal-body:has(.virevo-login-card){overflow-y:auto!important;place-items:start center!important;padding:18px 12px!important;}
  .portal-topbar{
    display:grid!important;grid-template-columns:1fr!important;gap:6px!important;
    min-height:74px!important;padding:10px 14px 9px!important;background:rgba(255,255,255,.96)!important;
    box-shadow:0 10px 28px rgba(15,23,42,.07)!important;border-bottom:1px solid rgba(226,232,240,.9)!important;
  }
  .portal-brand{display:grid!important;grid-template-columns:auto 1fr!important;grid-template-rows:auto auto!important;column-gap:10px!important;row-gap:0!important;align-items:center!important;width:100%!important;}
  .portal-brand img{grid-row:1 / span 2!important;width:116px!important;max-width:116px!important;height:auto!important;}
  .portal-brand span{grid-column:2!important;justify-self:start!important;margin:0!important;padding:0!important;font-size:12px!important;line-height:1.1!important;color:#2563EB!important;font-weight:700!important;}
  .portal-brand small{grid-column:2!important;justify-self:start!important;margin:0!important;max-width:calc(100vw - 170px)!important;font-size:12px!important;line-height:1.2!important;color:#64748B!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .portal-header-product{display:flex!important;align-items:center!important;gap:4px!important;margin-left:126px!important;margin-top:-2px!important;font-size:10.5px!important;line-height:1!important;color:#94A3B8!important;white-space:nowrap!important;}
  .portal-header-product span{font-weight:700!important;}
  .portal-header-product strong{font-weight:700!important;color:#64748B!important;}
  .portal-shell{display:grid!important;width:100%!important;max-width:100vw!important;margin:0!important;padding:12px 10px calc(112px + env(safe-area-inset-bottom))!important;gap:14px!important;overflow-x:hidden!important;}
  .portal-hero-card,.portal-card,.portal-kpi-card,.portal-day-detail,.portal-day-shift-card,.portal-request-list article,.portal-leave-list article,.portal-availability-list article{width:100%!important;max-width:100%!important;border-radius:24px!important;}
  .portal-dashboard-hero{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;padding:18px!important;background:linear-gradient(180deg,#FFFFFF 0%,#F8FAFF 100%)!important;}
  .portal-dashboard-hero h1{font-size:28px!important;line-height:1.05!important;margin-bottom:6px!important;}
  .portal-dashboard-hero p{font-size:14px!important;line-height:1.45!important;}
  .portal-hero-next{border-radius:22px!important;border:1px solid #DBEAFE!important;background:#EFF6FF!important;padding:16px!important;box-shadow:0 12px 24px rgba(37,99,235,.10)!important;}
  .portal-hero-next strong{font-size:19px!important;line-height:1.2!important;}
  .portal-hero-next small{font-size:13px!important;}
  .portal-mobile-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;width:100%!important;}
  .portal-mobile-actions a{min-height:58px!important;padding:12px 10px!important;border-radius:20px!important;font-size:14px!important;line-height:1.15!important;}
  .portal-mobile-actions a:nth-child(5){grid-column:1 / -1!important;}
  .portal-kpi-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;width:100%!important;}
  .portal-kpi-card{padding:16px!important;}
  .portal-kpi-card:first-child{grid-column:1 / -1!important;}
  .portal-kpi-card strong{font-size:30px!important;}
  .portal-grid,.portal-dashboard-grid{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;width:100%!important;}
  .portal-card{padding:18px!important;overflow:hidden!important;}
  .portal-calendar-toolbar{position:sticky!important;top:74px!important;z-index:18!important;display:grid!important;grid-template-columns:auto 1fr auto!important;align-items:center!important;gap:8px!important;margin:-4px -6px 12px!important;padding:8px 6px 10px!important;background:rgba(246,249,255,.96)!important;}
  .portal-calendar-toolbar a{min-height:42px!important;padding:10px 11px!important;border-radius:16px!important;font-size:0!important;white-space:nowrap!important;box-shadow:0 8px 18px rgba(15,23,42,.05)!important;}
  .portal-calendar-toolbar a:first-child::before{content:'‹';font-size:22px;line-height:1;}
  .portal-calendar-toolbar a:last-child::before{content:'›';font-size:22px;line-height:1;}
  .portal-calendar-title{display:grid!important;justify-items:center!important;gap:4px!important;min-width:0!important;}
  .portal-calendar-title strong{font-size:18px!important;line-height:1.1!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
  .portal-calendar-title a{font-size:12px!important;min-height:30px!important;padding:7px 11px!important;border-radius:999px!important;background:#EEF2FF!important;color:#2563EB!important;}
  .portal-mobile-week-calendar{display:flex!important;gap:9px!important;overflow-x:auto!important;overflow-y:hidden!important;max-width:100%!important;width:100%!important;margin:0 0 12px!important;padding:2px 1px 12px!important;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;}
  .portal-mobile-week-calendar::-webkit-scrollbar{display:none;}
  .portal-week-day{flex:0 0 76px!important;min-width:76px!important;max-width:76px!important;min-height:92px!important;border-radius:20px!important;}
  .portal-month-calendar{display:none!important;}
  .portal-day-detail{padding:16px!important;margin-top:4px!important;background:#fff!important;border-color:#DBEAFE!important;box-shadow:0 12px 28px rgba(15,23,42,.055)!important;scroll-margin-top:94px;}
  .portal-day-detail-head{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;}
  .portal-day-detail-head h3{font-size:21px!important;line-height:1.15!important;}
  .portal-day-detail-head a{width:100%!important;min-height:48px!important;border-radius:18px!important;}
  .portal-day-shift-card{padding:16px!important;}
  .portal-shift-main{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .portal-shift-main strong{font-size:20px!important;line-height:1.15!important;}
  .portal-shift-meta{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .portal-shift-meta span{width:100%!important;border-radius:15px!important;justify-content:flex-start!important;}
  .portal-colleague-list{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .portal-colleague-list article{grid-template-columns:36px 1fr!important;border-radius:18px!important;}
  .portal-request-form,.portal-inline-form,.portal-form{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;}
  .portal-form input,.portal-form select,.portal-form textarea,.portal-form button{width:100%!important;max-width:100%!important;font-size:16px!important;}
  .portal-request-list,.portal-leave-list,.portal-availability-list,.message-list{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;width:100%!important;}
  .portal-request-list article,.portal-leave-list article,.portal-availability-list article{padding:15px!important;display:grid!important;gap:8px!important;}
  .portal-product-mark{display:flex!important;position:relative!important;z-index:1!important;align-items:center!important;justify-content:center!important;gap:6px!important;margin:4px auto 0!important;padding:10px 8px 0!important;color:#64748B!important;font-size:11px!important;font-weight:700!important;opacity:1!important;}
  .portal-product-mark img{display:block!important;width:82px!important;height:auto!important;object-fit:contain!important;}
  .portal-bottom-nav{position:fixed!important;left:10px!important;right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;z-index:80!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important;padding:7px!important;border-radius:26px!important;background:rgba(255,255,255,.96)!important;border:1px solid rgba(203,213,225,.9)!important;box-shadow:0 20px 50px rgba(15,23,42,.22)!important;backdrop-filter:blur(18px)!important;}
  .portal-bottom-nav a{min-width:0!important;min-height:48px!important;padding:7px 3px!important;border-radius:19px!important;font-size:10.5px!important;line-height:1.05!important;text-align:center!important;}
  .portal-bottom-nav a:active,.portal-bottom-nav a:hover{background:#EEF2FF!important;color:#2563EB!important;}
  .portal-bottom-nav a.danger{background:#FEF2F2!important;color:#B91C1C!important;}
  .portal-bottom-nav a.danger:active{background:#FEE2E2!important;color:#991B1B!important;}
  #dashboard,#agenda,#requests,#leave,#availability{scroll-margin-top:92px!important;}
}
@media(max-width:380px){
  .portal-shell{padding-left:8px!important;padding-right:8px!important;}
  .portal-brand img{width:104px!important;max-width:104px!important;}
  .portal-header-product{margin-left:114px!important;font-size:10px!important;}
  .portal-bottom-nav{left:6px!important;right:6px!important;gap:4px!important;}
  .portal-bottom-nav a{font-size:9.5px!important;min-height:46px!important;}
  .portal-mobile-actions a{font-size:13px!important;}
  .portal-week-day{flex-basis:72px!important;min-width:72px!important;max-width:72px!important;}
}

/* v3.2c - moderne agenda-navigatie voor de mobiele portal */
.portal-week-toolbar{display:none;}
@media(max-width:900px){
  .portal-calendar-card > h2{margin-bottom:10px!important;}
  .portal-agenda-toolbar{border-radius:22px!important;border:1px solid #E2E8F0!important;background:rgba(255,255,255,.96)!important;box-shadow:0 12px 28px rgba(15,23,42,.065)!important;margin:0 0 10px!important;padding:8px!important;}
  .portal-agenda-toolbar .portal-calendar-title strong{font-size:17px!important;}
  .portal-agenda-toolbar .portal-calendar-title a{min-height:34px!important;background:#DBEAFE!important;color:#1D4ED8!important;font-weight:700!important;box-shadow:none!important;}
  .portal-agenda-toolbar > a{display:flex!important;align-items:center!important;justify-content:center!important;width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;padding:0!important;border-radius:16px!important;background:#F8FAFC!important;border:1px solid #E2E8F0!important;color:#0F172A!important;font-size:24px!important;text-decoration:none!important;box-shadow:none!important;}
  .portal-agenda-toolbar > a::before{content:none!important;}
  .portal-week-toolbar{display:grid!important;grid-template-columns:46px 1fr 46px!important;align-items:center!important;gap:10px!important;margin:0 0 12px!important;}
  .portal-week-toolbar a{display:flex!important;align-items:center!important;justify-content:center!important;width:46px!important;height:46px!important;border-radius:18px!important;background:linear-gradient(135deg,#2563EB,#6366F1)!important;color:#fff!important;text-decoration:none!important;font-size:25px!important;font-weight:700!important;box-shadow:0 13px 26px rgba(37,99,235,.18)!important;}
  .portal-week-toolbar div{min-height:52px!important;border-radius:19px!important;background:#F8FAFC!important;border:1px solid #E2E8F0!important;display:grid!important;place-items:center!important;padding:7px 10px!important;}
  .portal-week-toolbar span{font-size:10px!important;text-transform:uppercase!important;letter-spacing:.10em!important;color:#64748B!important;font-weight:700!important;margin:0!important;}
  .portal-week-toolbar strong{font-size:17px!important;letter-spacing:-.03em!important;color:#0F172A!important;line-height:1.1!important;}
  .portal-mobile-week-calendar{gap:10px!important;padding:3px 2px 14px!important;margin:0 -2px 8px!important;scroll-padding:50%;}
  .portal-week-day{position:relative!important;min-height:98px!important;padding:11px 8px!important;border-radius:22px!important;background:#fff!important;border:1px solid #E2E8F0!important;box-shadow:0 10px 24px rgba(15,23,42,.055)!important;transition:transform .18s ease, box-shadow .18s ease, background .18s ease!important;}
  .portal-week-day:active{transform:scale(.96)!important;}
  .portal-week-day span{font-size:10px!important;color:#64748B!important;}
  .portal-week-day strong{font-size:24px!important;color:#0F172A!important;}
  .portal-week-day small{font-size:10.5px!important;color:#475569!important;max-width:100%!important;}
  .portal-week-day.has-shift::after,.portal-week-day.has-leave::after{content:'';position:absolute;left:50%;bottom:9px;width:7px;height:7px;border-radius:999px;transform:translateX(-50%);background:#10B981;box-shadow:0 0 0 4px rgba(16,185,129,.13);}
  .portal-week-day.has-leave::after{background:#F59E0B;box-shadow:0 0 0 4px rgba(245,158,11,.16);}
  .portal-week-day.today{background:#EFF6FF!important;border-color:#93C5FD!important;}
  .portal-week-day.today strong{color:#1D4ED8!important;}
  .portal-week-day.selected{background:linear-gradient(135deg,#2563EB,#6366F1)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 18px 34px rgba(37,99,235,.30)!important;transform:translateY(-2px)!important;}
  .portal-week-day.selected span,.portal-week-day.selected strong,.portal-week-day.selected small{color:#fff!important;}
  .portal-week-day.selected::after{background:#fff!important;box-shadow:0 0 0 4px rgba(255,255,255,.22)!important;}
  .portal-calendar-card.is-navigating{opacity:.86;transition:opacity .2s ease;}
  .portal-day-detail{animation:portalDayIn .22s ease both;}
  @keyframes portalDayIn{from{opacity:.45;transform:translateY(6px)}to{opacity:1;transform:none}}
}
@media(max-width:380px){
  .portal-week-toolbar{grid-template-columns:42px 1fr 42px!important;gap:8px!important;}
  .portal-week-toolbar a{width:42px!important;height:42px!important;border-radius:16px!important;}
  .portal-week-toolbar strong{font-size:15px!important;}
  .portal-week-day{flex-basis:70px!important;min-width:70px!important;max-width:70px!important;min-height:92px!important;}
}

/* v3.2d - agenda mobile cleanup */
@media(max-width:900px){
  .portal-agenda-toolbar{grid-template-columns:1fr!important;}
  .portal-agenda-toolbar > a.portal-month-prev,
  .portal-agenda-toolbar > a.portal-month-next{display:none!important;}
  .portal-agenda-toolbar .portal-calendar-title{grid-column:1!important;order:0!important;}
  .portal-bottom-nav a[href="#agenda"]{background:transparent!important;color:#334155!important;}
  .portal-bottom-nav a[href="#agenda"]:active,
  .portal-bottom-nav a[href="#agenda"]:hover{background:#EEF2FF!important;color:#2563EB!important;}
}

/* v3.2e - agenda blijft op zijn plek bij mobiel navigeren */
@media(max-width:900px){
  html{scroll-behavior:auto!important;}
  .portal-calendar-card{overflow:visible!important;}
  .portal-agenda-toolbar{position:sticky!important;top:72px!important;z-index:25!important;backdrop-filter:blur(16px)!important;}
  .portal-week-toolbar{position:sticky!important;top:142px!important;z-index:24!important;background:#F6F9FF!important;padding-bottom:8px!important;}
  .portal-mobile-week-calendar{position:sticky!important;top:206px!important;z-index:23!important;background:#F6F9FF!important;padding-top:4px!important;}
  .portal-calendar-card.is-navigating .portal-day-detail{opacity:.72!important;}
  .portal-day-detail{min-height:210px!important;}
}

/* v3.3 - Mobile UX Premium / PWA app feeling */
@media(max-width:900px){
  body.portal-body{overscroll-behavior-y:contain!important;-webkit-tap-highlight-color:transparent!important;touch-action:manipulation!important;}
  .portal-topbar{box-shadow:0 10px 30px rgba(15,23,42,.08)!important;}
  .portal-calendar-card{padding:12px!important;border-radius:26px!important;background:linear-gradient(180deg,#FFFFFF 0%,#F8FBFF 100%)!important;}
  .portal-calendar-card > span,.portal-calendar-card > h2{padding-left:6px!important;}
  .portal-agenda-toolbar{top:70px!important;margin:2px 0 8px!important;padding:9px!important;border-radius:24px!important;}
  .portal-agenda-toolbar .portal-calendar-title{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:10px!important;width:100%!important;}
  .portal-agenda-toolbar .portal-calendar-title strong{font-size:18px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .portal-agenda-toolbar .portal-calendar-title a{border-radius:999px!important;padding:8px 13px!important;min-width:unset!important;}
  .portal-week-toolbar{top:138px!important;grid-template-columns:48px minmax(0,1fr) 48px!important;margin:0!important;padding:0 0 9px!important;}
  .portal-week-toolbar div{box-shadow:inset 0 1px 0 rgba(255,255,255,.82)!important;}
  .portal-mobile-week-calendar{top:199px!important;margin:0 -12px 10px!important;padding:8px 12px 14px!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;-webkit-overflow-scrolling:touch!important;}
  .portal-mobile-week-calendar::-webkit-scrollbar{display:none!important;}
  .portal-week-day{scroll-snap-align:center!important;user-select:none!important;}
  .portal-week-day.has-shift{border-color:rgba(37,99,235,.24)!important;}
  .portal-week-day.has-shift small{font-weight:700!important;color:#2563EB!important;}
  .portal-week-day.selected small{color:#fff!important;}
  .portal-month-calendar{display:none!important;}
  .portal-day-detail{position:relative!important;border-radius:28px!important;background:#fff!important;border:1px solid #E2E8F0!important;box-shadow:0 22px 48px rgba(15,23,42,.10)!important;padding:16px!important;margin:8px 0 0!important;min-height:240px!important;}
  .portal-day-detail::before{content:"";display:block;width:46px;height:5px;border-radius:999px;background:#CBD5E1;margin:0 auto 14px;}
  .portal-day-detail-head{position:sticky!important;top:292px!important;z-index:21!important;background:rgba(255,255,255,.94)!important;backdrop-filter:blur(12px)!important;margin:-2px -2px 12px!important;padding:4px 2px 10px!important;border-bottom:1px solid #EEF2F7!important;}
  .portal-day-detail-head h3{font-size:20px!important;letter-spacing:-.035em!important;}
  .portal-day-detail-head a{border-radius:999px!important;background:#ECFDF5!important;color:#047857!important;border:1px solid #BBF7D0!important;padding:9px 12px!important;}
  .portal-day-shift-card{border-radius:24px!important;box-shadow:0 12px 28px rgba(15,23,42,.055)!important;}
  .portal-colleague-list article{border-radius:18px!important;background:#F8FAFC!important;}
  .portal-calendar-card.is-navigating{pointer-events:none!important;}
  .portal-calendar-card.is-navigating .portal-day-detail{opacity:.58!important;transform:translateY(4px)!important;transition:opacity .16s ease, transform .16s ease!important;}
  .portal-calendar-card.is-ready .portal-day-detail{animation:portalSheetIn .24s ease both!important;}
  @keyframes portalSheetIn{from{opacity:.60;transform:translateY(12px)}to{opacity:1;transform:none}}
  .portal-floating-action{position:fixed!important;right:20px!important;bottom:86px!important;z-index:80!important;width:58px!important;height:58px!important;border-radius:22px!important;background:linear-gradient(135deg,#2563EB,#6366F1)!important;color:#fff!important;display:grid!important;place-items:center!important;text-decoration:none!important;font-size:34px!important;font-weight:600!important;box-shadow:0 18px 36px rgba(37,99,235,.34)!important;}
  .portal-floating-action:active{transform:scale(.96)!important;}
  .portal-bottom-nav{box-shadow:0 18px 55px rgba(15,23,42,.24)!important;}
  .portal-bottom-nav a{transition:background .16s ease,color .16s ease,transform .16s ease!important;}
  .portal-bottom-nav a:active{transform:translateY(1px) scale(.98)!important;}
  .portal-request-form,.portal-inline-form{border-radius:24px!important;background:#F8FAFC!important;border:1px solid #E2E8F0!important;padding:14px!important;}
}
@media(min-width:901px){.portal-floating-action{display:none!important;}}
@media(max-width:420px){
  .portal-day-detail-head{grid-template-columns:1fr!important;align-items:start!important;top:286px!important;}
  .portal-day-detail-head a{width:max-content!important;}
  .portal-floating-action{right:16px!important;bottom:82px!important;width:54px!important;height:54px!important;border-radius:20px!important;}
}

/* v3.4 - Native App Feeling */
.portal-body{overscroll-behavior-y:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.portal-shell{padding-bottom:calc(92px + env(safe-area-inset-bottom))!important;}
.portal-install-card[hidden]{display:none!important;}
.portal-install-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,#0F172A,#1E293B)!important;color:#fff;border:0;border-radius:22px;padding:14px 16px;box-shadow:0 18px 44px rgba(15,23,42,.22);}
.portal-install-card strong{display:block;font-size:15px;font-weight:700;letter-spacing:-.02em}.portal-install-card span{display:block;color:#CBD5E1;font-size:12px;font-weight:600;margin-top:2px}.portal-install-card button{border:0;border-radius:999px;background:#fff;color:#2563EB;font-weight:700;padding:10px 14px;white-space:nowrap}.portal-install-card button.ghost{width:36px;height:36px;padding:0;background:rgba(255,255,255,.12);color:#fff;font-size:22px;line-height:1}
.portal-bottom-nav{padding-bottom:env(safe-area-inset-bottom)!important;box-shadow:0 -18px 38px rgba(15,23,42,.12)!important;}
.portal-bottom-nav a{position:relative;transition:background .18s ease,color .18s ease,transform .18s ease;}
.portal-bottom-nav a.is-active{background:#EFF6FF!important;color:#2563EB!important;box-shadow:inset 0 0 0 1px rgba(37,99,235,.18)!important;}
.portal-bottom-nav a:active{transform:scale(.97)}
.portal-week-toolbar{position:sticky;top:78px;z-index:12;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border:1px solid #E3EAF6;border-radius:18px;padding:8px;margin:10px 0 12px;box-shadow:0 12px 26px rgba(15,23,42,.06)}
.portal-week-toolbar a{min-width:46px!important;min-height:46px!important;border-radius:14px!important;background:#EFF6FF!important;color:#2563EB!important;font-size:24px!important;padding:0!important;}
.portal-week-toolbar div{display:grid;justify-items:center;line-height:1.1}.portal-week-toolbar div span{margin:0!important;color:#667085!important;font-size:10px!important;letter-spacing:.13em!important}.portal-week-toolbar div strong{font-size:16px!important;color:#0F172A!important}.portal-week-toolbar div small{font-size:11px;color:#94A3B8;font-weight:600;margin-top:3px}
.portal-mobile-week-calendar{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.portal-mobile-week-calendar::-webkit-scrollbar{display:none}.portal-week-day{scroll-snap-align:center;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;background:#fff!important;}
.portal-week-day:active{transform:scale(.97)}.portal-week-day.selected{transform:translateY(-2px);box-shadow:0 14px 30px rgba(37,99,235,.18)!important}.portal-week-day.today:not(.selected){border-color:rgba(16,185,129,.45)!important;background:#ECFDF5!important;}
.portal-calendar-card{contain:layout paint;}.portal-day-detail{scroll-margin-top:150px;}
.portal-day-shift-card{animation:virevoSheetIn .22s ease-out both;}
@keyframes virevoSheetIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.portal-floating-action{bottom:calc(86px + env(safe-area-inset-bottom))!important;right:18px!important;width:58px!important;height:58px!important;box-shadow:0 18px 42px rgba(37,99,235,.28)!important;}
@media(max-width:700px){
  html,body{width:100%;max-width:100%;overflow-x:hidden;}
  .portal-topbar{position:sticky!important;top:0!important;border-radius:0 0 22px 22px!important;box-shadow:0 12px 28px rgba(15,23,42,.08)!important;}
  .portal-topbar nav{display:none!important;}
  .portal-shell{width:100%!important;margin:0!important;padding:12px 12px calc(110px + env(safe-area-inset-bottom))!important;box-sizing:border-box;gap:14px!important;}
  .portal-install-card{border-radius:20px;margin:0 2px;}
  .portal-hero-card,.portal-card{border-radius:22px!important;box-shadow:0 8px 22px rgba(15,23,42,.055)!important;}
  .portal-calendar-card{margin-left:-2px;margin-right:-2px;padding:14px!important;}
  .portal-agenda-toolbar{display:none!important;}
  .portal-week-toolbar{top:74px;margin:2px 0 10px;}
  .portal-mobile-week-calendar{display:flex!important;gap:8px;overflow-x:auto;padding:4px 2px 12px;margin-left:-2px;margin-right:-2px;}
  .portal-week-day{flex:0 0 74px;min-height:92px;border-radius:18px!important;padding:11px 8px!important;display:grid!important;place-items:center;border:1px solid #E3EAF6!important;text-decoration:none!important;}
  .portal-week-day span{font-size:11px!important;text-transform:uppercase;letter-spacing:.12em;color:#667085!important;font-weight:700!important}.portal-week-day strong{font-size:24px!important;line-height:1;color:#0F172A!important}.portal-week-day small{font-size:11px!important;color:#64748B!important;font-weight:700!important;text-align:center;line-height:1.15}.portal-week-day.selected{background:linear-gradient(135deg,#2563EB,#6366F1)!important;border-color:transparent!important;color:#fff!important}.portal-week-day.selected span,.portal-week-day.selected strong,.portal-week-day.selected small{color:#fff!important}.portal-week-day.has-shift:not(.selected){border-color:rgba(37,99,235,.28)!important;background:#F8FAFF!important}.portal-week-day.has-leave:not(.selected){background:#FFF7ED!important;border-color:#FED7AA!important;}
  .portal-month-calendar{display:none!important;}
  .portal-day-detail{position:relative;border-radius:24px!important;margin-top:4px;background:#fff;box-shadow:0 -8px 28px rgba(15,23,42,.05);}
  .portal-day-detail:before{content:"";display:block;width:42px;height:5px;border-radius:99px;background:#CBD5E1;margin:0 auto 14px;}
  .portal-day-detail-head{gap:12px!important;align-items:flex-start!important}.portal-day-detail-head a{min-height:44px;border-radius:14px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 14px!important;background:#EFF6FF!important;color:#2563EB!important;font-weight:700!important;text-decoration:none!important;}
  .portal-day-shift-list{gap:12px!important}.portal-day-shift-card{border-radius:20px!important;border-left:5px solid var(--emp-color,#2563EB)!important;}
  .portal-colleague-list article{border-radius:16px!important;padding:12px!important;background:#F8FAFF!important;}
  .portal-floating-action{display:flex!important;align-items:center!important;justify-content:center!important;position:fixed!important;}
}
@media(min-width:701px){.portal-install-card{display:none!important}.portal-week-toolbar{position:static}.portal-floating-action{display:none!important}}

/* v3.4a - Mobile Shell Polish: install banner landscape + bottom nav breathing room */
@media(max-width:700px){
  .portal-install-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto 42px!important;
    align-items:center!important;
    gap:10px!important;
    min-height:58px!important;
    padding:12px 12px 12px 14px!important;
    overflow:hidden!important;
  }
  .portal-install-card > div{min-width:0!important;padding-right:2px!important;}
  .portal-install-card strong,
  .portal-install-card span{
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .portal-install-card button:not(.ghost){
    justify-self:end!important;
    min-height:40px!important;
    padding:10px 13px!important;
    max-width:120px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .portal-install-card button.ghost{
    justify-self:end!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    border-radius:15px!important;
    display:grid!important;
    place-items:center!important;
    line-height:1!important;
  }

  .portal-bottom-nav{
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    padding:8px 8px calc(13px + env(safe-area-inset-bottom))!important;
    min-height:78px!important;
    align-items:start!important;
  }
  .portal-bottom-nav a{
    min-height:50px!important;
    padding:8px 4px 7px!important;
    border-radius:18px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .portal-bottom-nav a.is-active{
    box-shadow:inset 0 0 0 1px rgba(37,99,235,.18),0 6px 14px rgba(37,99,235,.10)!important;
  }
  .portal-shell{
    padding-bottom:calc(126px + env(safe-area-inset-bottom))!important;
  }
  .portal-floating-action{
    bottom:calc(102px + env(safe-area-inset-bottom))!important;
  }
}

@media(max-width:700px) and (orientation:landscape){
  .portal-install-card{
    grid-template-columns:minmax(0,1fr) auto 44px!important;
    min-height:62px!important;
    padding:10px 12px!important;
    border-radius:18px!important;
  }
  .portal-install-card strong{font-size:14px!important;line-height:1.15!important;}
  .portal-install-card span{font-size:11px!important;line-height:1.25!important;}
  .portal-install-card button:not(.ghost){
    min-width:92px!important;
    max-width:116px!important;
    padding:9px 12px!important;
  }
  .portal-install-card button.ghost{
    width:40px!important;
    height:40px!important;
  }
  .portal-bottom-nav{
    min-height:76px!important;
    padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;
  }
}

/* v3.4b - Strict mobile/landscape shell fix
   Doel: ook bij telefoon-landscape (>700px breed) geen overlap in install-banner
   en meer ademruimte onder de actieve bottom-nav tab. */
@media (hover:none) and (pointer:coarse), (max-width:900px){
  .portal-install-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    column-gap:10px!important;
    min-height:68px!important;
    padding:12px 58px 12px 16px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .portal-install-card > div{
    min-width:0!important;
    max-width:100%!important;
  }
  .portal-install-card strong,
  .portal-install-card span{
    display:block!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .portal-install-card span{
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
  }
  .portal-install-card button:not(.ghost){
    grid-column:2!important;
    justify-self:end!important;
    flex:0 0 auto!important;
    min-width:98px!important;
    max-width:128px!important;
    min-height:42px!important;
    padding:10px 14px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .portal-install-card button.ghost{
    position:absolute!important;
    top:50%!important;
    right:10px!important;
    transform:translateY(-50%)!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    line-height:1!important;
    z-index:2!important;
  }

  .portal-bottom-nav{
    box-sizing:border-box!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    min-height:88px!important;
    padding:10px 9px calc(18px + env(safe-area-inset-bottom))!important;
    align-items:start!important;
  }
  .portal-bottom-nav a{
    min-height:52px!important;
    padding:9px 5px 8px!important;
    border-radius:19px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    line-height:1.05!important;
  }
  .portal-bottom-nav a.is-active{
    margin-bottom:2px!important;
    box-shadow:inset 0 0 0 1px rgba(37,99,235,.18),0 7px 16px rgba(37,99,235,.12)!important;
  }
  .portal-shell{padding-bottom:calc(136px + env(safe-area-inset-bottom))!important;}
  .portal-floating-action{bottom:calc(114px + env(safe-area-inset-bottom))!important;}
}

@media (hover:none) and (pointer:coarse) and (orientation:landscape), (max-width:900px) and (orientation:landscape), (max-height:520px) and (max-width:980px){
  .portal-shell{
    padding-top:10px!important;
    padding-bottom:calc(116px + env(safe-area-inset-bottom))!important;
  }
  .portal-install-card{
    min-height:58px!important;
    padding:9px 56px 9px 14px!important;
    border-radius:18px!important;
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .portal-install-card strong{
    font-size:13px!important;
    line-height:1.12!important;
  }
  .portal-install-card span{
    font-size:10.5px!important;
    line-height:1.16!important;
    -webkit-line-clamp:1!important;
  }
  .portal-install-card button:not(.ghost){
    min-width:94px!important;
    max-width:112px!important;
    min-height:38px!important;
    padding:8px 11px!important;
    font-size:12px!important;
  }
  .portal-install-card button.ghost{
    right:9px!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    font-size:21px!important;
  }
  .portal-bottom-nav{
    left:12px!important;
    right:12px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    min-height:82px!important;
    padding:8px 9px calc(16px + env(safe-area-inset-bottom))!important;
  }
  .portal-bottom-nav a{
    min-height:50px!important;
    padding-bottom:8px!important;
  }
}

@media (max-width:380px){
  .portal-install-card{
    grid-template-columns:1fr!important;
    row-gap:9px!important;
    padding-right:56px!important;
  }
  .portal-install-card button:not(.ghost){
    grid-column:1!important;
    justify-self:start!important;
    max-width:116px!important;
  }
}

/* v3.4c - Pixel Polish: X rechtsboven en minder bottom-nav onderruimte */
@media (hover:none) and (pointer:coarse), (max-width:900px){
  .portal-install-card{
    padding:14px 58px 14px 16px!important;
    min-height:64px!important;
  }
  .portal-install-card button.ghost{
    position:absolute!important;
    top:10px!important;
    right:10px!important;
    transform:none!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    border-radius:14px!important;
    z-index:5!important;
  }
  .portal-bottom-nav{
    min-height:80px!important;
    padding:9px 9px calc(11px + env(safe-area-inset-bottom))!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
  }
  .portal-bottom-nav a{
    min-height:50px!important;
    padding:8px 5px 7px!important;
  }
  .portal-bottom-nav a.is-active{
    margin-bottom:0!important;
  }
  .portal-shell{padding-bottom:calc(124px + env(safe-area-inset-bottom))!important;}
  .portal-floating-action{bottom:calc(102px + env(safe-area-inset-bottom))!important;}
}

@media (hover:none) and (pointer:coarse) and (orientation:landscape), (max-width:900px) and (orientation:landscape), (max-height:520px) and (max-width:980px){
  .portal-install-card{
    min-height:58px!important;
    padding:10px 56px 10px 14px!important;
  }
  .portal-install-card button.ghost{
    top:8px!important;
    right:8px!important;
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
  }
  .portal-bottom-nav{
    min-height:76px!important;
    padding:8px 9px calc(10px + env(safe-area-inset-bottom))!important;
    bottom:calc(7px + env(safe-area-inset-bottom))!important;
  }
  .portal-bottom-nav a{
    min-height:48px!important;
    padding-bottom:7px!important;
  }
  .portal-shell{padding-bottom:calc(108px + env(safe-area-inset-bottom))!important;}
}

/* v3.5a - logo links to Virevo */
.logo-link{display:inline-flex;align-items:center;text-decoration:none;color:inherit}.logo-link img{display:block}.logo-link:hover{opacity:.92}

/* v3.6 - Portal urenregistratie */
.portal-hours-card{scroll-margin-top:18px;}
.portal-hours-form{align-items:end;}
.portal-hours-form label small{font-size:11px;color:#64748B;font-weight:600;}
.portal-hour-list{display:grid;gap:12px;margin-top:16px;}
.portal-hour-list article{border:1px solid rgba(148,163,184,.22);background:linear-gradient(180deg,#fff,#f8fbff);border-radius:18px;padding:14px;box-shadow:0 10px 28px rgba(15,23,42,.06);}
.portal-hour-list article>div{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.portal-hour-list p{margin:8px 0 0;color:#334155;font-weight:600;}
.portal-hour-list small{display:block;margin-top:6px;color:#64748B;line-height:1.35;}
@media(max-width:760px){
  .portal-hours-form{grid-template-columns:1fr!important;}
  .portal-hour-list article{border-radius:20px;padding:15px;}
  .portal-hour-list article>div{align-items:center;}
}


/* v3.6i - social login demo buttons on portal login */
.portal-social-demo{margin:18px 0 4px;display:grid;gap:12px;}
.portal-social-divider{display:flex;align-items:center;gap:12px;color:#94A3B8;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.portal-social-divider:before,.portal-social-divider:after{content:"";height:1px;background:#E2E8F0;flex:1;}
.portal-social-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.portal-social-button{height:46px;border-radius:999px;border:1px solid #DDE7F3;background:#FFFFFF;color:#0F172A;font:inherit;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;cursor:not-allowed;box-shadow:0 10px 24px rgba(15,23,42,.055);opacity:.96;}
.portal-social-button span{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;background:#F1F5F9;color:#2563EB;}
.portal-social-button.facebook span{background:#EFF6FF;color:#1877F2;font-family:Arial,sans-serif;font-size:18px;}
.portal-social-button.google span{background:#FEF2F2;color:#EA4335;}
.portal-social-demo small{display:block;text-align:center;color:#94A3B8;font-size:11px;font-weight:600;}
@media(max-width:420px){.portal-social-buttons{grid-template-columns:1fr}.portal-social-button{height:44px;}}

/* v3.6j - premium social login buttons */
.portal-social-demo{margin:20px 0 6px!important;display:grid!important;gap:13px!important;}
.portal-social-divider{display:flex!important;align-items:center!important;gap:12px!important;color:#94A3B8!important;font-size:11px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.10em!important;}
.portal-social-divider:before,.portal-social-divider:after{content:""!important;height:1px!important;background:linear-gradient(90deg,transparent,#DDE7F3,transparent)!important;flex:1!important;}
.portal-social-buttons{display:grid!important;grid-template-columns:1fr 1fr!important;gap:11px!important;}
.portal-social-button{height:50px!important;border-radius:18px!important;border:1px solid rgba(37,99,235,.13)!important;background:linear-gradient(180deg,#FFFFFF,#F8FBFF)!important;color:#0F172A!important;font:inherit!important;font-weight:700!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;cursor:pointer!important;box-shadow:0 14px 32px rgba(15,23,42,.075)!important;opacity:1!important;transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease!important;}
.portal-social-button:hover{transform:translateY(-1px)!important;box-shadow:0 18px 38px rgba(37,99,235,.12)!important;border-color:rgba(37,99,235,.22)!important;}
.portal-social-button:active{transform:translateY(0)!important;}
.portal-social-button .social-icon{width:24px!important;height:24px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#fff!important;box-shadow:0 6px 16px rgba(15,23,42,.08)!important;overflow:hidden!important;}
.portal-social-button .social-icon svg{width:19px!important;height:19px!important;display:block!important;}
.portal-social-button.facebook .social-icon svg{width:22px!important;height:22px!important;}
.portal-social-demo small{display:none!important;}
@media(max-width:420px){.portal-social-buttons{grid-template-columns:1fr!important}.portal-social-button{height:48px!important;border-radius:16px!important;}}


/* v3.6k demo smooth-load: prevents visible reflow/flicker while critical CSS/fonts settle */
html.virevo-booting body {
  opacity: 0;
}
html.virevo-ready body {
  opacity: 1;
  transition: opacity .18s ease-out;
}
@media (prefers-reduced-motion: reduce) {
  html.virevo-ready body { transition: none; }
}

/* v3.8 - workflow completion polish */
.portal-open-offers {
  margin: 18px 0 22px;
  padding: 18px;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(16,185,129,.08));
  border: 1px solid rgba(37,99,235,.14);
}
.portal-open-offers h3 { margin: 0 0 4px; font-size: 1.05rem; color: #0f172a; }
.portal-offer-card { border-color: rgba(37,99,235,.18) !important; }
.portal-offer-response { align-items: stretch; }
.portal-offer-response input[type="text"] {
  min-height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,.12);
  padding: 0 14px;
  background: #fff;
}
.portal-offer-response button { white-space: normal; }
@media (max-width: 720px) {
  .portal-open-offers { margin-left: -2px; margin-right: -2px; padding: 14px; border-radius: 20px; }
  .portal-offer-response { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .portal-offer-response input[type="text"], .portal-offer-response button { width: 100%; }
}

/* v3.8a - Virevo Design System v1: consistent forms, cards, badges and request flow */
:root{
  --vw-primary:#2563EB;
  --vw-secondary:#6366F1;
  --vw-accent:#10B981;
  --vw-dark:#0F172A;
  --vw-bg:#F7FAFF;
  --vw-surface:#FFFFFF;
  --vw-line:#DDE7F3;
  --vw-line-strong:#C7D5EA;
  --vw-muted:#64748B;
  --vw-radius-sm:12px;
  --vw-radius-md:16px;
  --vw-radius-lg:22px;
  --vw-shadow-card:0 12px 30px rgba(15,23,42,.055);
  --vw-shadow-soft:0 8px 20px rgba(15,23,42,.04);
  --vw-focus:0 0 0 4px rgba(37,99,235,.13);
}
.portal-card,
.portal-hero-card,
.portal-day-detail,
.portal-request-list article,
.portal-hour-list article,
.portal-open-offers{
  border:1px solid var(--vw-line)!important;
  border-radius:var(--vw-radius-lg)!important;
  background:var(--vw-surface)!important;
  box-shadow:var(--vw-shadow-card)!important;
}
.portal-card,
.portal-hero-card,
.portal-day-detail{padding:24px!important;}
.portal-form,
.portal-inline-form,
.portal-request-form{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
  align-items:end!important;
}
.portal-form label,
.portal-request-form label,
.portal-inline-form label{
  display:grid!important;
  gap:8px!important;
  color:var(--vw-dark)!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1.25!important;
  min-width:0!important;
}
.portal-form label.wide,
.portal-request-form label.wide,
.portal-inline-form label.wide{
  grid-column:1 / -1!important;
}
.portal-form input:not([type="checkbox"]):not([type="radio"]),
.portal-form select,
.portal-form textarea,
.portal-request-actions input[type="text"],
.portal-offer-response input[type="text"]{
  width:100%!important;
  min-height:48px!important;
  height:48px!important;
  box-sizing:border-box!important;
  border:1px solid var(--vw-line-strong)!important;
  border-radius:var(--vw-radius-sm)!important;
  background:#fff!important;
  color:var(--vw-dark)!important;
  padding:0 16px!important;
  font:inherit!important;
  font-size:14px!important;
  font-weight:600!important;
  line-height:1.2!important;
  outline:none!important;
  box-shadow:none!important;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease!important;
}
.portal-form textarea{height:auto!important;min-height:96px!important;padding:14px 16px!important;resize:vertical!important;}
.portal-form input::placeholder,
.portal-request-actions input::placeholder{color:#8997AA!important;font-weight:700!important;}
.portal-form input:not([type="checkbox"]):not([type="radio"]):focus,
.portal-form select:focus,
.portal-form textarea:focus,
.portal-request-actions input[type="text"]:focus,
.portal-offer-response input[type="text"]:focus{
  border-color:var(--vw-primary)!important;
  box-shadow:var(--vw-focus)!important;
  background:#fff!important;
}
.portal-form .checkline,
.portal-request-form .checkline,
.portal-inline-form .checkline{
  min-height:48px!important;
  height:48px!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  padding:0 14px!important;
  border:1px solid var(--vw-line-strong)!important;
  border-radius:var(--vw-radius-sm)!important;
  background:#fff!important;
  box-shadow:none!important;
  color:var(--vw-dark)!important;
  font-size:14px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
.portal-form input[type="checkbox"],
.portal-form input[type="radio"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  min-height:20px!important;
  max-width:20px!important;
  max-height:20px!important;
  margin:0!important;
  display:inline-grid!important;
  place-content:center!important;
  border:1.7px solid #B7C5DA!important;
  border-radius:6px!important;
  background:#fff!important;
  box-shadow:none!important;
  flex:0 0 20px!important;
  cursor:pointer!important;
}
.portal-form input[type="radio"]{border-radius:999px!important;}
.portal-form input[type="checkbox"]::before{
  content:""!important;
  width:10px!important;
  height:6px!important;
  border-left:2px solid #fff!important;
  border-bottom:2px solid #fff!important;
  transform:rotate(-45deg) scale(0)!important;
  transform-origin:center!important;
  transition:transform .12s ease!important;
}
.portal-form input[type="radio"]::before{
  content:""!important;
  width:8px!important;
  height:8px!important;
  border-radius:999px!important;
  background:#fff!important;
  transform:scale(0)!important;
  transition:transform .12s ease!important;
}
.portal-form input[type="checkbox"]:checked,
.portal-form input[type="radio"]:checked{
  border-color:var(--vw-primary)!important;
  background:linear-gradient(135deg,var(--vw-primary),var(--vw-secondary))!important;
}
.portal-form input[type="checkbox"]:checked::before,
.portal-form input[type="radio"]:checked::before{transform:rotate(-45deg) scale(1)!important;}
.portal-form input[type="radio"]:checked::before{transform:scale(1)!important;}
.portal-form input[type="checkbox"]:focus-visible,
.portal-form input[type="radio"]:focus-visible{box-shadow:var(--vw-focus)!important;}
.portal-form button,
.portal-request-actions button,
.portal-offer-response button{
  min-height:48px!important;
  height:48px!important;
  border:0!important;
  border-radius:var(--vw-radius-sm)!important;
  padding:0 20px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  font:inherit!important;
  font-size:14px!important;
  font-weight:700!important;
  color:#fff!important;
  background:linear-gradient(135deg,var(--vw-primary),var(--vw-secondary))!important;
  box-shadow:0 14px 26px rgba(37,99,235,.18)!important;
  cursor:pointer!important;
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease!important;
}
.portal-form button:hover,
.portal-request-actions button:hover,
.portal-offer-response button:hover{transform:translateY(-1px)!important;box-shadow:0 18px 34px rgba(37,99,235,.23)!important;}
.portal-request-list{display:grid!important;gap:14px!important;}
.portal-request-list article,
.portal-hour-list article{
  padding:16px!important;
  box-shadow:var(--vw-shadow-soft)!important;
}
.portal-request-list article>div:first-child,
.portal-hour-list article>div:first-child{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
}
.portal-request-list article strong,
.portal-hour-list article strong{color:var(--vw-dark)!important;font-weight:700!important;}
.request-status,
.portal-request-list span.request-status,
.portal-hour-list .request-status{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:32px!important;
  height:32px!important;
  max-width:100%!important;
  padding:0 12px!important;
  border-radius:999px!important;
  white-space:nowrap!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.09em!important;
  text-transform:uppercase!important;
  line-height:1!important;
  border:1px solid transparent!important;
  box-shadow:none!important;
}
.request-status.wait-colleague{background:#FFF7ED!important;color:#C2410C!important;border-color:#FED7AA!important;}
.request-status.wait-manager{background:#FEFCE8!important;color:#A16207!important;border-color:#FDE68A!important;}
.request-status.approved{background:#ECFDF5!important;color:#047857!important;border-color:#A7F3D0!important;}
.request-status.declined{background:#FEF2F2!important;color:#B91C1C!important;border-color:#FECACA!important;}
.request-status.done,.request-status.completed{background:#EFF6FF!important;color:#1D4ED8!important;border-color:#BFDBFE!important;}
.portal-open-offers{
  margin:18px 0 22px!important;
  padding:18px!important;
  background:linear-gradient(180deg,#FFFFFF,#F8FBFF)!important;
}
.portal-offer-response,
.portal-request-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  margin-top:12px!important;
}
.portal-day-detail-head,
.portal-card-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
}
.portal-shift-meta,
.portal-colleague-list article,
.portal-day-shift-card,
.portal-offer-card{
  border-radius:var(--vw-radius-md)!important;
}
@media(max-width:900px){
  .portal-card,.portal-hero-card,.portal-day-detail{padding:18px!important;border-radius:20px!important;}
  .portal-form,.portal-inline-form,.portal-request-form{grid-template-columns:1fr!important;gap:14px!important;}
  .portal-form label.wide,.portal-request-form label.wide,.portal-inline-form label.wide{grid-column:auto!important;}
  .portal-form button{width:100%!important;}
  .portal-request-list article>div:first-child,
  .portal-hour-list article>div:first-child{align-items:flex-start!important;}
  .request-status{min-height:30px!important;height:30px!important;font-size:10.5px!important;padding:0 10px!important;}
  .portal-offer-response,.portal-request-actions{grid-template-columns:1fr!important;}
  .portal-offer-response button,.portal-request-actions button{width:100%!important;}
}
@media(max-width:520px){
  .portal-card,.portal-hero-card,.portal-day-detail{padding:16px!important;}
  .portal-form input:not([type="checkbox"]):not([type="radio"]),
  .portal-form select,
  .portal-form button,
  .portal-request-actions button,
  .portal-offer-response button{min-height:46px!important;height:46px!important;border-radius:12px!important;}
  .portal-form .checkline{min-height:46px!important;height:46px!important;border-radius:12px!important;}
  .portal-request-list article>div:first-child{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .request-status{justify-self:start!important;}
}

/* v3.8b - UI compact hotfix: login layout and smaller controls */
.virevo-login-card .portal-form,
.portal-login-card .portal-form{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  align-items:stretch!important;
  margin-top:20px!important;
}
.virevo-login-card .portal-form label,
.portal-login-card .portal-form label{
  grid-column:1 / -1!important;
}
.virevo-login-card .portal-form button,
.portal-login-card .portal-form button{
  grid-column:1 / -1!important;
  width:100%!important;
  margin-top:2px!important;
}
.virevo-login-card .portal-social-demo,
.portal-login-card .portal-social-demo{margin-top:18px!important;}
.virevo-login-card .portal-social-buttons,
.portal-login-card .portal-social-buttons{grid-template-columns:1fr 1fr!important;}

.portal-form input:not([type="checkbox"]):not([type="radio"]),
.portal-form select,
.portal-form textarea,
.portal-request-actions input[type="text"],
.portal-offer-response input[type="text"]{
  min-height:44px!important;
  height:44px!important;
  border-radius:11px!important;
  padding:0 14px!important;
  font-size:14px!important;
  font-weight:700!important;
}
.portal-form textarea{min-height:88px!important;height:auto!important;padding:12px 14px!important;}
.portal-form .checkline,
.portal-request-form .checkline,
.portal-inline-form .checkline{
  min-height:44px!important;
  height:44px!important;
  border-radius:11px!important;
  padding:0 12px!important;
  gap:9px!important;
  font-size:13.5px!important;
}
.portal-form input[type="checkbox"],
.portal-form input[type="radio"]{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  min-height:16px!important;
  max-width:16px!important;
  max-height:16px!important;
  flex-basis:16px!important;
  border-radius:5px!important;
  border-width:1.5px!important;
}
.portal-form input[type="radio"]{border-radius:999px!important;}
.portal-form input[type="checkbox"]::before{
  width:8px!important;
  height:5px!important;
  border-left-width:1.8px!important;
  border-bottom-width:1.8px!important;
}
.portal-form input[type="radio"]::before{width:6px!important;height:6px!important;}
.portal-form button,
.portal-request-actions button,
.portal-offer-response button,
.portal-social-button{
  min-height:44px!important;
  height:44px!important;
  border-radius:11px!important;
  padding:0 16px!important;
  font-size:13.5px!important;
}
.portal-social-button{border-radius:14px!important;}
.portal-social-button .social-icon,
.portal-social-button span.social-icon{width:21px!important;height:21px!important;}
.portal-social-button svg{width:18px!important;height:18px!important;display:block!important;}
@media(max-width:520px){
  .portal-form input:not([type="checkbox"]):not([type="radio"]),
  .portal-form select,
  .portal-form button,
  .portal-request-actions button,
  .portal-offer-response button,
  .portal-social-button{min-height:44px!important;height:44px!important;}
  .portal-form .checkline{min-height:44px!important;height:44px!important;}
}

/* v3.9 - Virevo Design System Polish
   Eén compact component-systeem voor portal: mobile-first, rustig en consistent. */
:root{
  --vw-bg:#F4F7FB;
  --vw-surface:#FFFFFF;
  --vw-surface-soft:#F8FAFC;
  --vw-text:#0F172A;
  --vw-muted:#64748B;
  --vw-line:#E2E8F0;
  --vw-line-strong:#CBD5E1;
  --vw-primary:#17342D;
  --vw-primary-2:#2563EB;
  --vw-danger:#B91C1C;
  --vw-radius-sm:11px;
  --vw-radius-md:16px;
  --vw-radius-lg:22px;
  --vw-shadow-card:0 14px 40px rgba(15,23,42,.07);
  --vw-shadow-soft:0 8px 22px rgba(15,23,42,.06);
  --vw-control-h:42px;
}
.portal-body,.portal-main{background:var(--vw-bg)!important;color:var(--vw-text)!important;}
.portal-main{font-size:14px!important;line-height:1.5!important;}
.portal-main *{box-sizing:border-box;}
.portal-card,.portal-hero-card,.portal-kpi-card,.portal-next-card,.portal-profile-card,.portal-install-card,.portal-day-detail,.portal-open-offers,.portal-request-list article,.portal-hour-list article,.portal-leave-list article,.portal-day-shift-card,.portal-colleague-list article,.portal-offer-card{
  background:var(--vw-surface)!important;border:1px solid var(--vw-line)!important;border-radius:var(--vw-radius-lg)!important;box-shadow:var(--vw-shadow-card)!important;
}
.portal-card,.portal-hero-card,.portal-day-detail,.portal-install-card{padding:20px!important;}
.portal-kpi-card{padding:16px!important;}
.portal-card h2,.portal-hero-card h1,.portal-day-detail h3{margin:0 0 6px!important;letter-spacing:-.025em!important;color:var(--vw-text)!important;}
.portal-card p,.portal-muted,.portal-card small,.portal-day-detail small{color:var(--vw-muted)!important;}
.portal-form,.portal-inline-form,.portal-request-form{gap:14px!important;align-items:end!important;}
.portal-form label,.portal-request-form label,.portal-inline-form label{gap:6px!important;font-size:12px!important;font-weight:700!important;color:#334155!important;line-height:1.25!important;}
.portal-form input:not([type="checkbox"]):not([type="radio"]),.portal-form select,.portal-form textarea,.portal-request-actions input[type="text"],.portal-offer-response input[type="text"]{
  width:100%!important;min-height:var(--vw-control-h)!important;height:var(--vw-control-h)!important;padding:0 12px!important;border:1px solid var(--vw-line-strong)!important;border-radius:var(--vw-radius-sm)!important;background:#fff!important;color:var(--vw-text)!important;box-shadow:none!important;font-size:14px!important;font-weight:600!important;outline:none!important;transition:border-color .14s ease,box-shadow .14s ease!important;
}
.portal-form textarea{height:auto!important;min-height:82px!important;padding:10px 12px!important;resize:vertical!important;}
.portal-form input::placeholder,.portal-form textarea::placeholder,.portal-request-actions input::placeholder{color:#94A3B8!important;font-weight:550!important;}
.portal-form input:focus,.portal-form select:focus,.portal-form textarea:focus,.portal-request-actions input:focus{border-color:#2563EB!important;box-shadow:0 0 0 3px rgba(37,99,235,.12)!important;}
.portal-form .checkline,.portal-request-form .checkline,.portal-inline-form .checkline,label.checkline{
  display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important;min-height:var(--vw-control-h)!important;height:auto!important;padding:9px 11px!important;border:1px solid var(--vw-line)!important;border-radius:var(--vw-radius-sm)!important;background:var(--vw-surface-soft)!important;color:#334155!important;font-size:13px!important;font-weight:700!important;line-height:1.25!important;
}
.portal-form input[type="checkbox"],.portal-form input[type="radio"],.portal-request-form input[type="checkbox"],.portal-request-form input[type="radio"],.portal-inline-form input[type="checkbox"],.portal-inline-form input[type="radio"]{
  appearance:none!important;-webkit-appearance:none!important;width:15px!important;height:15px!important;min-width:15px!important;min-height:15px!important;max-width:15px!important;max-height:15px!important;flex:0 0 15px!important;margin:0!important;padding:0!important;border:1.5px solid #94A3B8!important;border-radius:4px!important;background:#fff!important;box-shadow:none!important;display:inline-grid!important;place-content:center!important;cursor:pointer!important;
}
.portal-form input[type="radio"],.portal-request-form input[type="radio"],.portal-inline-form input[type="radio"]{border-radius:999px!important;}
.portal-form input[type="checkbox"]::before,.portal-request-form input[type="checkbox"]::before,.portal-inline-form input[type="checkbox"]::before{content:""!important;width:7px!important;height:4px!important;border-left:1.7px solid #fff!important;border-bottom:1.7px solid #fff!important;transform:rotate(-45deg) scale(0)!important;transition:transform .12s ease!important;}
.portal-form input[type="radio"]::before,.portal-request-form input[type="radio"]::before,.portal-inline-form input[type="radio"]::before{content:""!important;width:5px!important;height:5px!important;border-radius:999px!important;background:#fff!important;transform:scale(0)!important;transition:transform .12s ease!important;}
.portal-form input[type="checkbox"]:checked,.portal-form input[type="radio"]:checked,.portal-request-form input:checked,.portal-inline-form input:checked{border-color:#2563EB!important;background:#2563EB!important;}
.portal-form input[type="checkbox"]:checked::before,.portal-request-form input[type="checkbox"]:checked::before,.portal-inline-form input[type="checkbox"]:checked::before{transform:rotate(-45deg) scale(1)!important;}
.portal-form input[type="radio"]:checked::before,.portal-request-form input[type="radio"]:checked::before,.portal-inline-form input[type="radio"]:checked::before{transform:scale(1)!important;}
.portal-form button,.portal-request-actions button,.portal-offer-response button,.portal-social-button,.portal-install-button,.portal-link-button{
  min-height:var(--vw-control-h)!important;height:var(--vw-control-h)!important;padding:0 14px!important;border-radius:var(--vw-radius-sm)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;border:1px solid transparent!important;background:linear-gradient(135deg,#17342D,#2563EB)!important;color:#fff!important;text-decoration:none!important;font-size:13px!important;font-weight:700!important;letter-spacing:0!important;line-height:1!important;box-shadow:none!important;cursor:pointer!important;white-space:nowrap!important;transition:transform .14s ease,box-shadow .14s ease!important;
}
.portal-form button:hover,.portal-request-actions button:hover,.portal-offer-response button:hover,.portal-link-button:hover{transform:translateY(-1px)!important;box-shadow:var(--vw-shadow-soft)!important;}
.portal-form button.secondary,.portal-request-actions button.secondary,.portal-offer-response button.secondary,.portal-link-button.secondary,.portal-social-button{background:#fff!important;color:#17342D!important;border-color:var(--vw-line-strong)!important;}
.portal-form button.danger,.portal-request-actions button.danger,.portal-offer-response button.danger{background:#B91C1C!important;color:#fff!important;border-color:transparent!important;}
.request-status,.leave-status,.portal-chip{
  min-height:28px!important;height:28px!important;padding:0 10px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:10px!important;font-weight:700!important;letter-spacing:.075em!important;text-transform:uppercase!important;line-height:1!important;white-space:nowrap!important;border:1px solid transparent!important;box-shadow:none!important;
}
.request-status.wait-colleague{background:#FFF7ED!important;color:#C2410C!important;border-color:#FED7AA!important;}.request-status.wait-manager,.leave-status.pending{background:#FEFCE8!important;color:#A16207!important;border-color:#FDE68A!important;}.request-status.approved,.leave-status.approved{background:#ECFDF5!important;color:#047857!important;border-color:#A7F3D0!important;}.request-status.declined,.leave-status.declined{background:#FEF2F2!important;color:#B91C1C!important;border-color:#FECACA!important;}.request-status.done,.request-status.completed{background:#EFF6FF!important;color:#1D4ED8!important;border-color:#BFDBFE!important;}
.portal-request-actions,.portal-offer-response{gap:10px!important;align-items:center!important;}
.portal-calendar-grid,.portal-kpi-grid{gap:12px!important;}
.portal-day{border-radius:14px!important;}
.portal-day-shift-card,.portal-request-list article,.portal-hour-list article,.portal-leave-list article{padding:14px!important;}
@media(max-width:720px){.portal-card,.portal-hero-card,.portal-day-detail,.portal-install-card{padding:16px!important;border-radius:20px!important}.portal-form,.portal-inline-form,.portal-request-form,.portal-request-actions,.portal-offer-response{grid-template-columns:1fr!important;align-items:stretch!important}.portal-form button,.portal-request-actions button,.portal-offer-response button,.portal-link-button{width:100%!important}.portal-card-head,.portal-day-detail-head{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.request-status,.leave-status,.portal-chip{justify-self:start!important}.portal-social-buttons{grid-template-columns:1fr 1fr!important;}}

/* v3.9a UI alignment + softer primary blue */
:root{
  --primary:#3B82F6;
  --primary-soft:#60A5FA;
  --primary-hover:#2563EB;
  --gradient:linear-gradient(135deg,#60A5FA 0%,#3B82F6 100%);
}
.portal-form button,.portal-request-actions button:not(.secondary),.portal-calendar-toolbar a.primary{
  background:var(--gradient)!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(59,130,246,.18)!important;
}
.portal-form button:hover,.portal-request-actions button:not(.secondary):hover{
  background:linear-gradient(135deg,#7DB7FF,var(--primary-hover))!important;
  box-shadow:0 12px 26px rgba(59,130,246,.22)!important;
}
.portal-form input:focus,.portal-form select:focus,.portal-form textarea:focus{
  border-color:var(--primary)!important;
  box-shadow:0 0 0 3px rgba(59,130,246,.14)!important;
}
.portal-form input[type="checkbox"],.portal-form input[type="radio"]{
  width:15px!important;height:15px!important;min-width:15px!important;min-height:15px!important;margin:0!important;vertical-align:middle!important;
}
.portal-form .checkline,label.checkline{
  display:flex!important;align-items:center!important;gap:9px!important;min-height:40px!important;padding:0 11px!important;line-height:1!important;
}
.portal-form .portal-grid > .checkline,.portal-form .portal-grid > label.checkline{
  align-self:end!important;margin-top:0!important;
}
.portal-form button,.portal-request-actions button,.portal-calendar-toolbar a{
  min-height:38px!important;height:38px!important;padding:0 13px!important;font-size:12.5px!important;
}

/* v3.9b - Button intent + compact controls correction */
:root{
  --primary:#3B82F6;
  --primary-bg:rgba(59,130,246,.12);
  --primary-bg-hover:rgba(59,130,246,.18);
  --danger:#DC2626;
  --danger-bg:rgba(220,38,38,.09);
  --danger-bg-hover:rgba(220,38,38,.14);
  --danger-border:rgba(220,38,38,.22);
}
.portal-form button,
.portal-request-actions button,
.portal-offer-response button,
.portal-calendar-toolbar a{
  min-height:36px!important;
  height:36px!important;
  padding:0 12px!important;
  border-radius:10px!important;
  font-size:12.5px!important;
  line-height:1!important;
}
.portal-form button:not(.secondary):not(.danger),
.portal-request-actions button:not(.secondary):not(.danger),
.portal-calendar-toolbar a.primary{
  background:var(--primary-bg)!important;
  color:#1D4ED8!important;
  border:1px solid rgba(59,130,246,.22)!important;
  box-shadow:none!important;
}
.portal-form button:not(.secondary):not(.danger):hover,
.portal-request-actions button:not(.secondary):not(.danger):hover,
.portal-calendar-toolbar a.primary:hover{
  background:var(--primary-bg-hover)!important;
  color:#1E40AF!important;
  border-color:rgba(59,130,246,.30)!important;
  box-shadow:0 8px 18px rgba(59,130,246,.10)!important;
}
.portal-form button.danger,
.portal-request-actions button.danger,
.portal-offer-response button.danger{
  background:var(--danger-bg)!important;
  color:var(--danger)!important;
  border:1px solid var(--danger-border)!important;
  box-shadow:none!important;
}
.portal-form button.danger:hover,
.portal-request-actions button.danger:hover,
.portal-offer-response button.danger:hover{
  background:var(--danger-bg-hover)!important;
  color:#B91C1C!important;
  border-color:rgba(220,38,38,.32)!important;
  box-shadow:0 8px 18px rgba(220,38,38,.08)!important;
}
.portal-form .checkline,
label.checkline{
  min-height:40px!important;
  height:40px!important;
  padding:0 11px!important;
  align-items:center!important;
  line-height:1!important;
}
.portal-form input[type="checkbox"],
.portal-form input[type="radio"]{
  width:15px!important;
  height:15px!important;
  min-width:15px!important;
  min-height:15px!important;
  margin:0!important;
  position:relative!important;
  top:0!important;
  transform:none!important;
}

/* v3.9c - portal install card restore + checkbox vertical micro-adjustment
   De PWA/app melding hoort donker te blijven; algemene card styling mag deze niet wit overschrijven. */
.portal-main .portal-install-card,
.portal-shell .portal-install-card,
section.portal-install-card{
  background:linear-gradient(135deg,#0F172A 0%,#1E293B 100%)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 18px 44px rgba(15,23,42,.22)!important;
}
.portal-main .portal-install-card strong,
.portal-shell .portal-install-card strong,
section.portal-install-card strong{
  color:#fff!important;
}
.portal-main .portal-install-card span,
.portal-shell .portal-install-card span,
section.portal-install-card span{
  color:#CBD5E1!important;
}
.portal-main .portal-install-card button:not(.ghost),
.portal-shell .portal-install-card button:not(.ghost),
section.portal-install-card button:not(.ghost){
  background:#fff!important;
  color:#2563EB!important;
  border:0!important;
  box-shadow:none!important;
}
.portal-main .portal-install-card button.ghost,
.portal-shell .portal-install-card button.ghost,
section.portal-install-card button.ghost{
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  border:0!important;
}
.portal-form .portal-grid > label.checkline,
.portal-form .portal-grid > .checkline,
.portal-grid > label.checkline{
  align-self:end!important;
  transform:translateY(-3px)!important;
}

/* v3.9d - Portal checkbox + install card final override
   Install-card blijft donker en checkboxregels worden niet meer naar beneden uitgelijnd. */
.portal-main .portal-install-card,
.portal-shell .portal-install-card,
section.portal-install-card{
  background:linear-gradient(135deg,#0F172A 0%,#1E293B 100%)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 18px 44px rgba(15,23,42,.22)!important;
}
.portal-main .portal-install-card strong,
.portal-shell .portal-install-card strong,
section.portal-install-card strong{color:#fff!important;}
.portal-main .portal-install-card span,
.portal-shell .portal-install-card span,
section.portal-install-card span{color:#CBD5E1!important;}
.portal-form .portal-grid > label.checkline,
.portal-form .portal-grid > .checkline,
.portal-grid > label.checkline{
  align-self:start!important;
  margin-top:22px!important;
  min-height:36px!important;
  height:36px!important;
  transform:none!important;
  display:inline-flex!important;
  align-items:center!important;
  flex-direction:row!important;
}
.portal-form .portal-grid > label.checkline::after,
.portal-form .portal-grid > .checkline::after,
.portal-grid > label.checkline::after{content:none!important;display:none!important;}


/* v3.9g - voorkom laad-flikker in portal */
html.virevo-booting body,
html.virevo-ready body{opacity:1!important;transition:none!important;}

/* v4.14j — Source Sans 3 readability pass */
.portal-body{
  font-family:"Source Sans 3","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif!important;
  font-weight:400!important;
  letter-spacing:0;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.portal-body h1,.portal-body h2,.portal-body h3,.portal-body h4,
.portal-hero-card h1,.portal-card h2,.portal-login-card h1{
  font-family:"Source Sans 3","Segoe UI",system-ui,sans-serif!important;
  font-weight:600!important;
  letter-spacing:-.012em!important;
}
.portal-body button,.portal-body .btn,.portal-body input,.portal-body select,.portal-body textarea{
  font-family:"Source Sans 3","Segoe UI",system-ui,sans-serif!important;
}
.portal-body button,.portal-body .btn,.portal-nav a,.portal-tabs a{font-weight:600!important;letter-spacing:0!important;}
.portal-body label,.portal-body th,.portal-body .badge,.portal-body .pill{font-weight:500!important;letter-spacing:0!important;}
.portal-body strong{font-weight:600;}
.portal-body .kpi strong,.portal-body .stat strong,.portal-body .metric strong{font-weight:700!important;}

/* v5.6 - operationele tijdklok en verlofsaldi */
.portal-clock-panel{
  display:grid;grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr);gap:18px;align-items:end;
  padding:18px;margin:14px 0 18px;border:1px solid #dbe5f2;border-radius:16px;background:#f8fbff;
}
.portal-clock-panel.is-running{background:#effcf7;border-color:#a7e8cf}
.portal-clock-panel>div{display:flex;flex-direction:column;gap:3px}
.portal-clock-panel>div>span{font-size:.82rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.portal-clock-panel>div>strong{font-size:1.65rem;color:#0f172a}
.portal-clock-panel>div>small{color:#64748b}
.portal-clock-form{display:grid!important;grid-template-columns:minmax(140px,.8fr) minmax(180px,1fr) auto!important;gap:12px!important;align-items:end!important;margin:0!important}
.portal-clock-form label{margin:0!important}
.portal-manual-hours{margin:0 0 18px;border:1px solid #dbe5f2;border-radius:14px;padding:0 16px;background:#fff}
.portal-manual-hours summary{cursor:pointer;padding:14px 0;font-weight:600;color:#1d4ed8}
.portal-manual-hours[open]{padding-bottom:16px}
.portal-leave-balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:14px 0 18px}
.portal-leave-balance-grid article{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid #dbe5f2;border-radius:14px;background:#f8fbff}
.portal-leave-balance-grid article span{font-size:.84rem;color:#64748b;font-weight:600}
.portal-leave-balance-grid article strong{font-size:1.25rem;color:#0f172a}
.portal-leave-balance-grid article small{color:#64748b}
.portal-leave-list article>div{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
@media(max-width:760px){
  .portal-clock-panel{grid-template-columns:1fr;align-items:stretch}
  .portal-clock-form{grid-template-columns:1fr!important}
  .portal-clock-form button{width:100%}
  .portal-leave-list article>div{flex-direction:column}
}

/* v7.2.1 — Unified mobile portal recovery
   Authoritative final layer. Existing forms and server-side functions remain unchanged. */
:root{
  --portal-bg:#f4f7fb;
  --portal-surface:#ffffff;
  --portal-surface-soft:#f8fafc;
  --portal-border:#dce5f1;
  --portal-text:#111827;
  --portal-muted:#64748b;
  --portal-accent:#2563eb;
  --portal-accent-soft:#eff6ff;
  --portal-radius:20px;
  --portal-shadow:0 14px 38px rgba(15,23,42,.07);
}
.portal-body:not(.virevo-auth-body){
  margin:0!important;
  min-width:0!important;
  overflow-x:hidden!important;
  background:var(--portal-bg)!important;
  color:var(--portal-text)!important;
}
.portal-topbar{
  position:sticky!important;
  top:0!important;
  z-index:90!important;
  min-height:72px!important;
  padding:10px max(20px,calc((100vw - 1180px)/2))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  background:rgba(255,255,255,.96)!important;
  border:0!important;
  border-bottom:1px solid var(--portal-border)!important;
  border-radius:0!important;
  box-shadow:none!important;
  backdrop-filter:blur(18px)!important;
}
.portal-brand{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  color:var(--portal-text)!important;
  text-decoration:none!important;
}
.portal-brand img{width:112px!important;height:auto!important;display:block!important;flex:none!important;}
.portal-brand>span{display:grid!important;min-width:0!important;line-height:1.15!important;}
.portal-brand strong{font-size:15px!important;font-weight:600!important;color:var(--portal-text)!important;}
.portal-brand small{margin-top:4px!important;font-size:13px!important;color:var(--portal-muted)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.portal-header-product{display:none!important;}
.portal-topbar-actions{display:flex!important;align-items:center!important;gap:8px!important;}
.portal-topbar-actions a{
  min-height:42px!important;
  padding:0 14px!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  border:1px solid var(--portal-border)!important;
  border-radius:13px!important;
  background:#fff!important;
  color:#334155!important;
  text-decoration:none!important;
  font-size:14px!important;
  font-weight:600!important;
}
.portal-topbar-actions a:hover{background:var(--portal-accent-soft)!important;border-color:#bfdbfe!important;color:var(--portal-accent)!important;}
.portal-topbar-actions b{min-width:22px!important;height:22px!important;padding:0 6px!important;display:grid!important;place-items:center!important;border-radius:999px!important;background:var(--portal-accent)!important;color:#fff!important;font-size:12px!important;}
.portal-shell{
  width:min(1180px,calc(100% - 40px))!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:28px 0 56px!important;
  display:grid!important;
  gap:20px!important;
  min-width:0!important;
}
.portal-install-card{margin:0!important;}
.portal-dashboard-hero{
  margin:0!important;
  padding:28px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(300px,370px)!important;
  align-items:stretch!important;
  gap:26px!important;
  border:1px solid var(--portal-border)!important;
  border-radius:var(--portal-radius)!important;
  background:var(--portal-surface)!important;
  box-shadow:var(--portal-shadow)!important;
}
.portal-dashboard-hero>div:first-child{align-self:center!important;}
.portal-dashboard-hero .eyebrow,
.portal-section-heading>span,
.portal-card-head>div>span{
  margin:0 0 8px!important;
  color:var(--portal-accent)!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
}
.portal-dashboard-hero h1{font-size:34px!important;line-height:1.08!important;margin:0 0 8px!important;}
.portal-dashboard-hero p{margin:0!important;color:var(--portal-muted)!important;font-size:16px!important;}
.portal-hero-next{
  min-width:0!important;
  min-height:132px!important;
  padding:20px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:5px!important;
  border:1px solid #cfe0ff!important;
  border-radius:18px!important;
  background:var(--portal-accent-soft)!important;
  color:var(--portal-text)!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
.portal-hero-next span{font-size:11px!important;font-weight:700!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--portal-accent)!important;}
.portal-hero-next strong{font-size:21px!important;font-weight:600!important;color:var(--portal-text)!important;}
.portal-hero-next small{font-size:14px!important;color:#475569!important;}
.portal-hero-next em{margin-top:5px!important;font-size:12px!important;font-style:normal!important;color:var(--portal-accent)!important;font-weight:600!important;}
.portal-primary-actions{
  margin:0!important;
  padding:22px!important;
  border:1px solid var(--portal-border)!important;
  border-radius:var(--portal-radius)!important;
  background:var(--portal-surface)!important;
  box-shadow:var(--portal-shadow)!important;
}
.portal-section-heading{margin:0 0 14px!important;}
.portal-section-heading h2{margin:0!important;font-size:22px!important;font-weight:600!important;color:var(--portal-text)!important;}
.portal-primary-action-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;}
.portal-primary-action-grid a{
  min-width:0!important;
  min-height:86px!important;
  padding:16px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:4px!important;
  border:1px solid var(--portal-border)!important;
  border-radius:16px!important;
  background:var(--portal-surface-soft)!important;
  color:var(--portal-text)!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
.portal-primary-action-grid a:hover{border-color:#b9cffb!important;background:var(--portal-accent-soft)!important;}
.portal-primary-action-grid strong{font-size:15px!important;font-weight:600!important;color:var(--portal-text)!important;}
.portal-primary-action-grid small{font-size:13px!important;line-height:1.35!important;color:var(--portal-muted)!important;}
.portal-mobile-actions{display:none!important;}
.portal-kpi-grid{
  margin:0!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
}
.portal-kpi-card{
  min-width:0!important;
  min-height:112px!important;
  margin:0!important;
  padding:18px!important;
  border:1px solid var(--portal-border)!important;
  border-radius:17px!important;
  background:var(--portal-surface)!important;
  box-shadow:none!important;
}
.portal-kpi-card span{font-size:11px!important;font-weight:700!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:var(--portal-accent)!important;}
.portal-kpi-card strong{margin:7px 0 2px!important;font-size:27px!important;line-height:1!important;font-weight:700!important;color:var(--portal-text)!important;}
.portal-kpi-card small{font-size:13px!important;color:var(--portal-muted)!important;}
.portal-card,
.portal-day-detail{
  min-width:0!important;
  margin:0!important;
  border:1px solid var(--portal-border)!important;
  border-radius:var(--portal-radius)!important;
  background:var(--portal-surface)!important;
  box-shadow:var(--portal-shadow)!important;
}
.portal-card.wide{width:auto!important;}
.portal-card-head{margin:0 0 16px!important;display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:16px!important;}
.portal-card-head h2{margin:0!important;font-size:24px!important;}
.portal-card-head>small{padding:7px 10px!important;border-radius:999px!important;background:var(--portal-accent-soft)!important;color:var(--portal-accent)!important;font-weight:600!important;}
.portal-messages-card{order:initial!important;}
.portal-message-preview,
.portal-older-messages .message-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;}
.message-list article{
  min-width:0!important;
  margin:0!important;
  padding:16px!important;
  border:1px solid var(--portal-border)!important;
  border-radius:15px!important;
  background:var(--portal-surface-soft)!important;
}
.message-list article h3{margin:0 0 6px!important;font-size:16px!important;font-weight:600!important;color:var(--portal-text)!important;}
.message-list article p{margin:0 0 12px!important;color:#475569!important;line-height:1.5!important;}
.message-list article time{font-size:12px!important;color:var(--portal-muted)!important;}
.portal-older-messages{margin-top:12px!important;border-top:1px solid var(--portal-border)!important;padding-top:12px!important;}
.portal-older-messages summary{cursor:pointer!important;color:var(--portal-accent)!important;font-weight:600!important;}
.portal-older-messages[open] summary{margin-bottom:12px!important;}
.portal-empty-state{margin:0!important;padding:16px!important;border:1px dashed #cbd5e1!important;border-radius:14px!important;background:var(--portal-surface-soft)!important;color:var(--portal-muted)!important;}
.portal-calendar-card{padding:24px!important;}
.portal-calendar-toolbar{margin-bottom:14px!important;}
.portal-month-calendar{min-width:0!important;}
.portal-profile-card{padding:22px!important;}
.portal-profile-details{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:8px 14px!important;}
.portal-profile-details strong{width:100%!important;font-size:19px!important;color:var(--portal-text)!important;}
.portal-profile-details span,
.portal-profile-details a{font-size:14px!important;color:var(--portal-muted)!important;text-decoration:none!important;}
.portal-profile-details a:hover{color:var(--portal-accent)!important;}
.portal-product-mark{margin:2px 0 0!important;padding:8px 4px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;color:var(--portal-muted)!important;}
.portal-product-mark img{max-height:24px!important;width:auto!important;}
.portal-floating-action{display:none!important;}
.portal-more-backdrop,
.portal-more-sheet,
.portal-bottom-nav{display:none;}

@media(max-width:960px){
  .portal-shell{width:min(100% - 28px,1180px)!important;padding-top:18px!important;gap:16px!important;}
  .portal-dashboard-hero{grid-template-columns:minmax(0,1fr) minmax(260px,330px)!important;}
  .portal-primary-action-grid,.portal-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .portal-message-preview,.portal-older-messages .message-list{grid-template-columns:1fr!important;}
}

@media(max-width:700px){
  .portal-body:not(.virevo-auth-body){padding-bottom:calc(82px + env(safe-area-inset-bottom))!important;}
  .portal-topbar{
    min-height:64px!important;
    padding:8px 14px!important;
    border-radius:0!important;
  }
  .portal-brand{gap:9px!important;max-width:calc(100% - 112px)!important;}
  .portal-brand img{width:82px!important;}
  .portal-brand strong{font-size:13px!important;}
  .portal-brand small{font-size:12px!important;}
  .portal-topbar-actions{gap:6px!important;}
  .portal-topbar-actions a{min-height:40px!important;padding:0 10px!important;border-radius:12px!important;font-size:0!important;}
  .portal-topbar-actions a::before{font-size:12px!important;}
  .portal-topbar-actions .portal-topbar-messages::before{content:'Bericht';}
  .portal-topbar-actions .portal-topbar-profile::before{content:'Profiel';}
  .portal-topbar-actions a span{display:none!important;}
  .portal-topbar-actions b{min-width:19px!important;height:19px!important;font-size:11px!important;}
  .portal-shell{width:calc(100% - 24px)!important;padding:14px 0 24px!important;gap:14px!important;}
  .portal-dashboard-hero{padding:18px!important;grid-template-columns:1fr!important;gap:16px!important;border-radius:20px!important;}
  .portal-dashboard-hero h1{font-size:29px!important;}
  .portal-dashboard-hero p{font-size:14px!important;}
  .portal-hero-next{min-height:104px!important;padding:16px!important;border-radius:16px!important;}
  .portal-hero-next strong{font-size:18px!important;}
  .portal-primary-actions{padding:16px!important;border-radius:20px!important;}
  .portal-section-heading h2{font-size:20px!important;}
  .portal-primary-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;}
  .portal-primary-action-grid a{min-height:82px!important;padding:13px!important;border-radius:15px!important;}
  .portal-primary-action-grid strong{font-size:14px!important;}
  .portal-primary-action-grid small{font-size:12px!important;}
  .portal-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;}
  .portal-kpi-card{min-height:96px!important;padding:14px!important;border-radius:15px!important;}
  .portal-kpi-card strong{font-size:24px!important;}
  .portal-card,.portal-day-detail{padding:16px!important;border-radius:20px!important;}
  .portal-card-head{display:flex!important;flex-direction:row!important;align-items:flex-start!important;}
  .portal-card-head h2{font-size:21px!important;}
  .portal-card-head>small{font-size:12px!important;}
  .portal-calendar-card{padding:16px!important;}
  .portal-week-toolbar,.portal-mobile-week-calendar{display:none!important;}
  .portal-month-calendar{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:4px!important;
    overflow:visible!important;
  }
  .portal-calendar-weekday{padding:4px 0!important;font-size:10px!important;text-align:center!important;color:var(--portal-muted)!important;}
  .portal-calendar-day{
    min-width:0!important;
    min-height:52px!important;
    padding:5px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:3px!important;
    border:1px solid #e5eaf1!important;
    border-radius:10px!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  .portal-calendar-day.muted{background:transparent!important;border-color:transparent!important;}
  .portal-calendar-day.today{border-color:#93c5fd!important;background:#eff6ff!important;}
  .portal-calendar-day.selected{border-color:var(--portal-accent)!important;background:var(--portal-accent)!important;color:#fff!important;}
  .portal-day-number{font-size:13px!important;font-weight:600!important;line-height:1!important;}
  .portal-calendar-day.selected .portal-day-number{color:#fff!important;}
  .portal-day-shifts{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:2px!important;}
  .portal-calendar-shift{width:6px!important;height:6px!important;min-height:0!important;padding:0!important;border:0!important;border-radius:999px!important;background:var(--emp-color,#2563eb)!important;overflow:hidden!important;}
  .portal-calendar-shift strong,.portal-calendar-shift small,.portal-shift-detail{display:none!important;}
  .portal-calendar-meta{display:flex!important;justify-content:center!important;gap:2px!important;}
  .portal-calendar-meta .portal-chip{width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;padding:0!important;border:0!important;border-radius:999px!important;font-size:0!important;overflow:hidden!important;}
  .portal-day-detail{margin-top:14px!important;}
  .portal-profile-details{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;}
  .portal-product-mark{padding-bottom:4px!important;}

  .portal-more-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:110!important;
    display:block!important;
    background:rgba(15,23,42,.42)!important;
    backdrop-filter:blur(2px)!important;
  }
  .portal-more-sheet{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    bottom:calc(72px + env(safe-area-inset-bottom))!important;
    z-index:120!important;
    display:block!important;
    max-height:min(70vh,520px)!important;
    overflow:auto!important;
    padding:18px!important;
    border:1px solid var(--portal-border)!important;
    border-radius:22px!important;
    background:#fff!important;
    box-shadow:0 28px 70px rgba(15,23,42,.28)!important;
  }
  .portal-more-backdrop[hidden],.portal-more-sheet[hidden]{display:none!important;}
  .portal-more-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:16px!important;margin-bottom:12px!important;}
  .portal-more-head span{font-size:11px!important;font-weight:700!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--portal-accent)!important;}
  .portal-more-head h2{margin:3px 0 0!important;font-size:22px!important;}
  .portal-more-head button{width:42px!important;height:42px!important;padding:0!important;border:1px solid var(--portal-border)!important;border-radius:13px!important;background:var(--portal-surface-soft)!important;color:var(--portal-text)!important;font-size:24px!important;}
  .portal-more-sheet nav{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important;}
  .portal-more-sheet nav a{min-height:52px!important;padding:12px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;border:1px solid var(--portal-border)!important;border-radius:14px!important;background:var(--portal-surface-soft)!important;color:var(--portal-text)!important;text-decoration:none!important;font-weight:600!important;}
  .portal-more-sheet nav a span{min-width:24px!important;height:24px!important;display:grid!important;place-items:center!important;border-radius:999px!important;background:var(--portal-accent-soft)!important;color:var(--portal-accent)!important;font-size:12px!important;}
  .portal-more-sheet nav a.danger{color:#b42318!important;background:#fff7f6!important;border-color:#f3c7c3!important;}
  .portal-more-open{overflow:hidden!important;}
  .portal-bottom-nav{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:100!important;
    min-height:68px!important;
    padding:7px 8px calc(7px + env(safe-area-inset-bottom))!important;
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:minmax(0,1fr)!important;
    gap:4px!important;
    border:0!important;
    border-top:1px solid var(--portal-border)!important;
    border-radius:0!important;
    background:rgba(255,255,255,.98)!important;
    box-shadow:0 -10px 30px rgba(15,23,42,.10)!important;
    backdrop-filter:blur(18px)!important;
  }
  .portal-bottom-nav a,.portal-bottom-nav button{
    min-width:0!important;
    min-height:52px!important;
    padding:5px 3px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    border:0!important;
    border-radius:13px!important;
    background:transparent!important;
    color:#64748b!important;
    text-decoration:none!important;
    font-family:inherit!important;
  }
  .portal-bottom-nav span{font-size:17px!important;line-height:1!important;font-weight:600!important;}
  .portal-bottom-nav strong{font-size:11px!important;line-height:1!important;font-weight:600!important;white-space:nowrap!important;}
  .portal-bottom-nav a.is-active,.portal-bottom-nav button.is-active{background:var(--portal-accent-soft)!important;color:var(--portal-accent)!important;box-shadow:none!important;}
}

@media(max-width:380px){
  .portal-topbar-actions a{padding:0 8px!important;}
  .portal-primary-action-grid{grid-template-columns:1fr!important;}
  .portal-kpi-grid{grid-template-columns:1fr 1fr!important;}
  .portal-more-sheet nav{grid-template-columns:1fr!important;}
  .portal-bottom-nav strong{font-size:10px!important;}
}

/* Virevo v7.2.4 — mobile-first Portal App */
.portal-app-body{
  --portal-app-bg:#f3f6fb;
  --portal-app-surface:#fff;
  --portal-app-soft:#f7f9fc;
  --portal-app-border:#dce4ef;
  --portal-app-text:#142033;
  --portal-app-muted:#66758c;
  --portal-app-accent:#2864e8;
  --portal-app-accent-soft:#edf3ff;
  min-height:100vh!important;
  overflow-x:hidden!important;
  background:var(--portal-app-bg)!important;
  color:var(--portal-app-text)!important;
  padding-bottom:92px!important;
}
.portal-appbar{
  position:sticky;top:0;z-index:90;
  min-height:76px;padding:12px clamp(16px,4vw,42px);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:rgba(255,255,255,.94);border-bottom:1px solid var(--portal-app-border);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.portal-appbar-brand{min-width:0;display:flex;align-items:center;gap:12px;color:var(--portal-app-text);text-decoration:none}
.portal-appbar-brand img{width:34px;height:34px;object-fit:contain;object-position:left center}
.portal-appbar-brand span{min-width:0;display:grid;gap:1px}
.portal-appbar-brand small{max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--portal-app-muted);font-size:12px;font-weight:600}
.portal-appbar-brand strong{font-size:19px;line-height:1.1;font-weight:650;letter-spacing:-.02em}
.portal-appbar-actions{display:flex;align-items:center;gap:8px}
.portal-appbar-actions>a{position:relative;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--portal-app-border);border-radius:15px;background:#fff;color:var(--portal-app-text);text-decoration:none;font-size:18px;font-weight:600}
.portal-appbar-actions>a:hover{background:var(--portal-app-accent-soft);color:var(--portal-app-accent);border-color:#bcd0fb}
.portal-appbar-actions .portal-avatar{border:0;background:linear-gradient(145deg,#2764e8,#5347e8);color:#fff;font-size:16px}
.portal-notification-button b,.portal-bottom-nav b{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border:2px solid #fff;border-radius:999px;background:#e83b3b;color:#fff;font-size:10px;line-height:1}
.portal-app-shell{width:min(1180px,calc(100% - 32px));margin:22px auto 0;display:grid;gap:18px}
.portal-app-flash{margin:0!important}
.portal-screen{display:grid;gap:18px;min-width:0}
.portal-screen-head{display:flex;align-items:center;gap:14px;padding:4px 2px}
.portal-screen-head>a{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--portal-app-border);border-radius:14px;background:#fff;color:var(--portal-app-text);text-decoration:none;font-size:28px;line-height:1}
.portal-screen-head span{display:block;color:var(--portal-app-accent);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.portal-screen-head h1{margin:2px 0 0;font-size:30px;line-height:1.08;font-weight:650;letter-spacing:-.035em}
.portal-home{display:grid;gap:18px}
.portal-app-body .portal-hero-card,.portal-app-card,.portal-app-body .portal-card,.portal-home-focus,.portal-status-strip{
  border:1px solid var(--portal-app-border)!important;border-radius:24px!important;background:var(--portal-app-surface)!important;box-shadow:0 14px 36px rgba(34,52,82,.07)!important
}
.portal-app-body .portal-hero-card{padding:28px!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(270px,.56fr)!important;align-items:stretch!important;gap:22px!important;background:linear-gradient(145deg,#fff 55%,#f0f5ff)!important}
.portal-app-body .portal-hero-card h1{margin:0 0 8px!important;font-size:clamp(34px,5vw,48px)!important;font-weight:650!important;letter-spacing:-.045em!important}
.portal-app-body .portal-hero-card p{max-width:650px;margin:0!important;font-size:17px!important;line-height:1.5!important;color:var(--portal-app-muted)!important}
.portal-app-body .portal-hero-next{min-height:142px;padding:20px!important;border:1px solid #cbd9f7!important;border-radius:20px!important;background:rgba(255,255,255,.85)!important;text-decoration:none!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
.portal-home-focus{padding:24px}
.portal-section-heading span{display:block;color:var(--portal-app-accent);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.portal-section-heading h2{margin:3px 0 0;font-size:25px;font-weight:650;letter-spacing:-.03em}
.portal-action-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}
.portal-action-tiles>a{min-height:116px;padding:16px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;border:1px solid var(--portal-app-border);border-radius:19px;background:var(--portal-app-soft);color:var(--portal-app-text);text-decoration:none;transition:.16s ease}
.portal-action-tiles>a:hover{transform:translateY(-1px);border-color:#b7caf5;background:var(--portal-app-accent-soft)}
.portal-action-icon{width:34px;height:34px;margin-bottom:4px;display:grid;place-items:center;border-radius:12px;background:var(--portal-app-accent-soft);color:var(--portal-app-accent);font-size:17px}
.portal-action-tiles strong{font-size:17px;font-weight:650}.portal-action-tiles small{color:var(--portal-app-muted);font-size:13px}
.portal-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.portal-app-card{padding:24px;min-width:0}
.portal-card-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:16px!important;margin:0 0 16px!important}
.portal-card-head span{display:block!important;margin:0!important;color:var(--portal-app-accent)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.13em!important;text-transform:uppercase!important}
.portal-card-head h2{margin:3px 0 0!important;font-size:24px!important;font-weight:650!important;letter-spacing:-.03em!important}
.portal-card-head>a,.portal-text-button{border:0;background:transparent;color:var(--portal-app-accent);font:inherit;font-size:13px;font-weight:650;text-decoration:none;cursor:pointer;white-space:nowrap}
.portal-compact-list,.portal-notification-list,.portal-document-list,.portal-task-list,.portal-relation-list,.portal-session-list,.portal-login-list,.portal-message-list{display:grid;gap:10px}
.portal-compact-row{min-width:0;padding:13px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid #edf1f6;color:var(--portal-app-text);text-decoration:none}
.portal-compact-row:last-child{border-bottom:0}.portal-compact-row>div{min-width:0}.portal-compact-row strong{display:block;font-weight:650}.portal-compact-row small{display:block;margin-top:3px;color:var(--portal-app-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-compact-row time{flex:0 0 auto;color:var(--portal-app-muted);font-size:11px}.portal-compact-row.is-unread{padding-left:12px;border-left:3px solid var(--portal-app-accent)}
.portal-status-strip{padding:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.portal-status-strip article{padding:8px 14px;border-right:1px solid var(--portal-app-border)}.portal-status-strip article:last-child{border-right:0}.portal-status-strip span{display:block;color:var(--portal-app-muted);font-size:12px}.portal-status-strip strong{display:block;margin-top:2px;font-size:20px;font-weight:650}
.portal-task-summary{padding:22px;border-radius:24px;background:linear-gradient(145deg,#2864e8,#4d50e8);color:#fff;box-shadow:0 16px 34px rgba(40,100,232,.2)}
.portal-task-summary strong{display:block;font-size:46px;line-height:1;font-weight:650}.portal-task-summary span{display:block;margin-top:6px;font-size:16px}
.portal-task-hub,.portal-module-screen,.portal-security-grid{display:grid;gap:18px}.portal-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.portal-module-tile{min-height:136px;padding:20px;display:flex;flex-direction:column;justify-content:center;border:1px solid var(--portal-app-border);border-radius:22px;background:#fff;color:var(--portal-app-text);text-decoration:none;box-shadow:0 12px 28px rgba(34,52,82,.055)}
.portal-module-tile span{color:var(--portal-app-accent);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.portal-module-tile strong{margin-top:7px;font-size:20px;font-weight:650}.portal-module-tile small{margin-top:5px;color:var(--portal-app-muted)}
.portal-module-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-module-summary-grid article{padding:22px;border:1px solid var(--portal-app-border);border-radius:22px;background:#fff}.portal-module-summary-grid span{display:block;color:var(--portal-app-muted);font-size:12px}.portal-module-summary-grid strong{display:block;margin-top:4px;font-size:34px}
.portal-screen-card{width:100%}
.portal-empty-state{margin:0!important;padding:18px;border:1px dashed #cbd7e6;border-radius:17px;background:#f9fbfd;color:var(--portal-app-muted)!important}
.portal-empty-large{min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.portal-empty-large strong{color:var(--portal-app-text);font-size:20px}.portal-empty-large span{margin-top:5px}
.portal-notification-row,.portal-document-list>article,.portal-task-list>article,.portal-relation-list>article,.portal-session-list>article{padding:16px;border:1px solid var(--portal-app-border);border-radius:18px;background:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.portal-notification-row.is-unread{border-color:#b6cbfa;background:#f6f9ff}.portal-notification-row>a{min-width:0;flex:1;color:inherit;text-decoration:none}.portal-notification-row h3,.portal-task-list h3,.portal-relation-list h3,.portal-document-list h3{margin:5px 0 3px;font-size:17px;font-weight:650}.portal-notification-row p,.portal-task-list p,.portal-relation-list p,.portal-document-list p{margin:0;color:var(--portal-app-muted)}.portal-notification-row time,.portal-task-list time{display:block;margin-top:7px;color:var(--portal-app-muted);font-size:12px}
.portal-notification-row form button,.portal-task-list form button,.portal-row-action,.portal-inline-status button,.portal-upload-form button{min-height:40px;padding:0 14px;border:0;border-radius:12px;background:var(--portal-app-accent);color:#fff;font:inherit;font-size:13px;font-weight:650;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.portal-status-pill{display:inline-flex!important;width:max-content!important;margin:0!important;padding:5px 9px!important;border-radius:999px!important;background:#eef3f9!important;color:#52647c!important;font-size:11px!important;font-weight:650!important;letter-spacing:0!important;text-transform:none!important}.portal-status-pill.is-danger{background:#fff0f0!important;color:#b42318!important}
.portal-file-icon{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:var(--portal-app-accent-soft);color:var(--portal-app-accent);font-size:11px;font-weight:700}
.portal-document-list>article>div:nth-child(2){min-width:0;flex:1}.portal-row-meta{flex:0 0 auto;display:grid;gap:4px;text-align:right;color:var(--portal-app-muted);font-size:12px}
.portal-inline-status{flex:0 0 180px;display:grid;gap:8px}.portal-inline-status select,.portal-checklist select{width:100%;min-height:40px;border:1px solid var(--portal-app-border);border-radius:11px;background:#fff;padding:0 10px;font:inherit}
.portal-checklist{display:grid;gap:8px;margin-top:10px}.portal-checklist form{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:8px;align-items:center;padding:10px;border-radius:13px;background:var(--portal-app-soft)}
.portal-tracking-summary{margin-top:12px;padding:11px 12px;border-radius:13px;background:#eef8f5;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}.portal-tracking-summary a{color:#087b5e;font-weight:650;text-decoration:none}
.portal-security-grid{grid-template-columns:1fr 1fr}.portal-session-list article>div{min-width:0}.portal-session-list p{margin:4px 0;color:var(--portal-app-muted);font-size:13px;word-break:break-word}.portal-session-list small{color:var(--portal-app-muted)}.portal-danger-button{min-height:40px;padding:0 13px;border:1px solid #f1c2c2;border-radius:12px;background:#fff6f6;color:#b42318;font:inherit;font-weight:650;cursor:pointer}
.portal-login-list article{display:flex;gap:10px;align-items:center;padding:12px;border-bottom:1px solid #edf1f6}.portal-login-list article:last-child{border-bottom:0}.portal-login-list small{display:block;color:var(--portal-app-muted)}
.portal-message-list article{padding:18px;border:1px solid var(--portal-app-border);border-radius:18px;background:#fff}.portal-message-list article>div{display:flex;justify-content:space-between;gap:14px}.portal-message-list h3{margin:0;font-size:18px}.portal-message-list time{color:var(--portal-app-muted);font-size:12px}.portal-message-list p{margin:10px 0 0;color:#46566d;line-height:1.55}
.portal-search-form label{display:block;margin-bottom:8px;font-weight:650}.portal-search-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.portal-search-form input{min-width:0;height:52px;border:1px solid var(--portal-app-border);border-radius:15px;padding:0 16px;background:#fff;font:inherit;font-size:16px}.portal-search-form button{min-width:100px;border:0;border-radius:15px;background:var(--portal-app-accent);color:#fff;font:inherit;font-weight:650}.portal-search-results{display:grid;gap:22px;margin-top:22px}.portal-search-results h2{font-size:18px}
.portal-upload-card details summary{cursor:pointer;font-weight:650;color:var(--portal-app-accent)}.portal-upload-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.portal-upload-form label{display:grid;gap:6px;font-weight:600}.portal-upload-form label.wide{grid-column:1/-1}.portal-upload-form input{width:100%;min-width:0;min-height:46px;border:1px solid var(--portal-app-border);border-radius:13px;padding:10px 12px;font:inherit;background:#fff}.portal-upload-form button{justify-self:start}
.portal-more-page{display:grid}.portal-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portal-more-grid>a{min-height:86px;padding:16px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--portal-app-border);border-radius:19px;background:#fff;color:var(--portal-app-text);text-decoration:none;box-shadow:0 10px 24px rgba(34,52,82,.045)}.portal-more-grid>a>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--portal-app-accent-soft);color:var(--portal-app-accent)}.portal-more-grid strong{display:block}.portal-more-grid small{display:block;margin-top:3px;color:var(--portal-app-muted)}.portal-more-grid b{color:var(--portal-app-muted);font-size:22px}.portal-more-grid .portal-more-danger{color:#b42318}
.portal-product-mark{margin:8px auto 18px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;background:transparent!important;border:0!important;box-shadow:none!important;color:var(--portal-app-muted)!important}.portal-product-mark img{width:78px;height:25px;object-fit:contain}.portal-product-mark span{font-size:11px!important;text-transform:none!important;letter-spacing:0!important;margin:0!important;color:inherit!important}
.portal-bottom-nav{display:none!important}
.portal-more-sheet,.portal-more-backdrop{display:none}

@media(max-width:900px){
  .portal-app-body{padding-bottom:calc(82px + env(safe-area-inset-bottom))!important;background:#f5f7fb!important}
  .portal-appbar{min-height:64px;padding:9px 14px calc(9px + env(safe-area-inset-top))}
  .portal-appbar-brand img{width:30px;height:30px}.portal-appbar-brand small{font-size:10px}.portal-appbar-brand strong{font-size:17px}
  .portal-appbar-actions>a{width:40px;height:40px;border-radius:13px}.portal-appbar-actions>a:first-child{display:grid!important}
  .portal-app-shell{width:100%;margin:0;padding:16px 14px 0;gap:14px}
  .portal-screen{gap:14px}.portal-screen-head{padding:1px 0}.portal-screen-head h1{font-size:26px}
  .portal-app-body .portal-hero-card{grid-template-columns:1fr!important;padding:21px!important;border-radius:22px!important;gap:16px!important}.portal-app-body .portal-hero-card h1{font-size:36px!important}.portal-app-body .portal-hero-next{min-height:112px!important;padding:16px!important}
  .portal-home-focus,.portal-app-card{padding:18px;border-radius:21px!important}.portal-section-heading h2{font-size:22px}
  .portal-action-tiles{grid-template-columns:1fr 1fr;gap:9px}.portal-action-tiles>a{min-height:102px;padding:14px;border-radius:16px}
  .portal-home-grid,.portal-security-grid{grid-template-columns:1fr}.portal-status-strip{grid-template-columns:repeat(3,1fr);padding:12px}.portal-status-strip article{padding:6px 9px}.portal-status-strip strong{font-size:17px}
  .portal-module-grid{grid-template-columns:1fr 1fr;gap:10px}.portal-module-tile{min-height:116px;padding:16px;border-radius:19px}.portal-module-summary-grid{grid-template-columns:1fr 1fr}
  .portal-notification-row,.portal-document-list>article,.portal-task-list>article,.portal-relation-list>article,.portal-session-list>article{padding:14px;border-radius:16px;display:grid;grid-template-columns:minmax(0,1fr) auto}.portal-document-list>article{grid-template-columns:auto minmax(0,1fr)}.portal-document-list .portal-row-action,.portal-document-list .portal-status-pill{grid-column:1/-1;width:100%}
  .portal-inline-status{grid-column:1/-1;grid-template-columns:1fr auto;align-items:center;flex-basis:auto}.portal-inline-status button{height:40px}
  .portal-checklist form{grid-template-columns:1fr}.portal-search-form>div{grid-template-columns:1fr}.portal-search-form button{height:48px}.portal-upload-form{grid-template-columns:1fr}.portal-upload-form label.wide{grid-column:auto}.portal-more-grid{grid-template-columns:1fr}
  .portal-more-backdrop{position:fixed!important;inset:0!important;z-index:110!important;display:block!important;background:rgba(16,29,49,.42)!important;backdrop-filter:blur(3px)!important}
  .portal-more-sheet{position:fixed!important;left:10px!important;right:10px!important;bottom:calc(76px + env(safe-area-inset-bottom))!important;z-index:120!important;display:block!important;max-height:min(72vh,620px)!important;overflow:auto!important;padding:18px!important;border:1px solid var(--portal-app-border)!important;border-radius:24px!important;background:#fff!important;box-shadow:0 28px 70px rgba(15,31,55,.28)!important}
  .portal-more-backdrop[hidden],.portal-more-sheet[hidden]{display:none!important}.portal-more-head{display:flex!important;justify-content:space-between!important;gap:14px!important;margin-bottom:12px!important}.portal-more-head span{color:var(--portal-app-accent)!important;font-size:11px!important;letter-spacing:.12em!important;text-transform:uppercase!important}.portal-more-head h2{margin:2px 0 0!important}.portal-more-head button{width:42px;height:42px;border:1px solid var(--portal-app-border);border-radius:13px;background:var(--portal-app-soft);font-size:24px}
  .portal-more-sheet nav{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.portal-more-sheet nav a{min-height:58px;padding:10px 12px;display:grid!important;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--portal-app-border)!important;border-radius:15px!important;background:var(--portal-app-soft)!important;color:var(--portal-app-text)!important;text-decoration:none!important}.portal-more-sheet nav a>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--portal-app-accent-soft);color:var(--portal-app-accent)}.portal-more-sheet nav a strong,.portal-more-sheet nav a small{display:block}.portal-more-sheet nav a small{margin-top:1px;color:var(--portal-app-muted);font-size:11px}.portal-more-sheet nav a.danger{color:#b42318!important;background:#fff7f7!important}
  .portal-more-open{overflow:hidden!important}
  .portal-bottom-nav{position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:100!important;min-height:68px!important;padding:7px 7px calc(7px + env(safe-area-inset-bottom))!important;display:grid!important;grid-auto-flow:column!important;grid-auto-columns:minmax(0,1fr)!important;gap:3px!important;border:0!important;border-top:1px solid var(--portal-app-border)!important;border-radius:0!important;background:rgba(255,255,255,.97)!important;box-shadow:0 -12px 30px rgba(27,44,72,.1)!important;backdrop-filter:blur(18px)!important}
  .portal-bottom-nav>a{position:relative;min-width:0!important;min-height:50px!important;padding:5px 2px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;border:0!important;border-radius:13px!important;background:transparent!important;color:#718096!important;text-decoration:none!important}.portal-bottom-nav>a>span{font-size:17px!important;line-height:1!important}.portal-bottom-nav>a>strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px!important;line-height:1!important;font-weight:650!important}.portal-bottom-nav>a.is-active{background:var(--portal-app-accent-soft)!important;color:var(--portal-app-accent)!important;box-shadow:none!important}
  .portal-product-mark{padding-bottom:4px!important}
}
@media(max-width:390px){.portal-app-shell{padding-left:10px;padding-right:10px}.portal-action-tiles{grid-template-columns:1fr 1fr}.portal-appbar-actions{gap:5px}.portal-appbar-actions>a{width:38px;height:38px}.portal-status-strip{grid-template-columns:1fr}.portal-status-strip article{border-right:0;border-bottom:1px solid var(--portal-app-border)}.portal-status-strip article:last-child{border-bottom:0}.portal-module-grid{grid-template-columns:1fr}.portal-bottom-nav>a>strong{font-size:9.5px!important}}
.portal-app-flash.portal-alert.warning{display:flex;flex-direction:column;gap:3px;background:#fff8e8;color:#7a4a00;border:1px solid #f3d79a}.portal-app-flash.portal-alert.warning span{font-weight:500;color:#805f27}
.portal-profile-badges{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 4px}.portal-profile-badges em{font-style:normal;font-size:.78rem;font-weight:700;color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:4px 9px}
.portal-checklist-readonly{min-height:46px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--portal-app-border,#dce4ef);border-radius:13px;background:var(--portal-app-soft,#f7f9fc)}.portal-checklist-readonly b{font-size:.78rem;color:var(--portal-app-muted,#66758c)}


/* v7.2.5 portal usability and app polish */
.portal-home-grid>:only-child{grid-column:1/-1}
.portal-home-panel{height:100%}
.portal-next-colleagues{color:#315fba!important;font-weight:600!important}
.portal-quick-actions{margin-top:22px;padding-top:20px;border-top:1px solid var(--portal-app-border)}
.portal-quick-actions-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}
.portal-quick-actions-head strong{font-size:18px;font-weight:650}.portal-quick-actions-head span{color:var(--portal-app-muted);font-size:13px}
.portal-quick-actions nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.portal-quick-actions a{min-height:74px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid var(--portal-app-border);border-radius:16px;background:#fff;color:var(--portal-app-text);text-align:center;text-decoration:none}
.portal-quick-actions a:hover{border-color:#b7caf5;background:var(--portal-app-accent-soft)}.portal-quick-actions a>span{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:var(--portal-app-accent-soft);color:var(--portal-app-accent);font-weight:700}.portal-quick-actions a>strong{font-size:13px;font-weight:650}.portal-quick-actions a.is-urgent{border-color:#f5c2c0;background:#fff7f7;color:#9f1f19}.portal-quick-actions a.is-urgent>span{background:#ffe5e3;color:#b42318}
.portal-task-summary small{display:block;margin-top:5px;color:rgba(255,255,255,.82)}
.portal-task-overview{padding:24px}.portal-task-row{padding:14px 0;display:grid;grid-template-columns:98px minmax(0,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid #edf1f6;color:var(--portal-app-text);text-decoration:none}.portal-task-row:last-child{border-bottom:0}.portal-task-source{width:max-content;padding:5px 9px;border-radius:999px;background:var(--portal-app-accent-soft);color:var(--portal-app-accent);font-size:11px;font-weight:700}.portal-task-row h3{margin:0;font-size:16px}.portal-task-row p{margin:3px 0 0;color:var(--portal-app-muted);font-size:13px}.portal-task-row>b{color:var(--portal-app-accent);font-size:12px}
.portal-appbar-brand img{width:112px;height:36px}.portal-appbar{min-height:84px}.portal-logout-button{width:auto!important;min-width:112px!important;padding:0 14px!important;display:flex!important;gap:8px!important}.portal-logout-button strong{font-size:13px;font-weight:650}
.portal-account-state{margin-top:14px;padding:13px 14px;border:1px solid var(--portal-app-border);border-radius:15px;background:var(--portal-app-soft)}.portal-account-state strong,.portal-account-state span{display:block}.portal-account-state span{margin-top:3px;color:var(--portal-app-muted);font-size:13px}.portal-account-state.is-linked{border-color:#b7decf;background:#f3fbf7}.portal-account-state.is-linked strong{color:#176649}
@media(max-width:1100px){.portal-quick-actions nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.portal-appbar{min-height:72px}.portal-appbar-brand img{width:76px;height:28px}.portal-logout-button{min-width:40px!important;width:40px!important;padding:0!important}.portal-logout-button strong{display:none}.portal-quick-actions-head{display:block}.portal-quick-actions-head span{display:block;margin-top:2px}.portal-quick-actions nav{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-quick-actions a{min-height:70px}.portal-task-row{grid-template-columns:1fr auto}.portal-task-source{grid-column:1/-1}.portal-task-row>b{align-self:center}}

.portal-request-context{grid-column:1/-1;min-height:44px;padding:12px 14px;border:1px solid #cbd9f8;border-radius:14px;background:#f4f7ff;color:#38557f;font-size:13px;font-weight:600}.portal-request-form [hidden]{display:none!important}
@media(max-width:390px){.portal-appbar-brand img{width:68px;height:25px}.portal-appbar-brand small{display:none}}


/* v7.3 profile polish */
.portal-profile-card{max-width:980px;margin-inline:auto}
.portal-profile-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:28px;align-items:start}
.portal-profile-identity{display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;align-items:center}
.portal-profile-avatar{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:var(--portal-app-accent-soft,#edf3ff);color:var(--portal-app-accent,#245ee8);font-size:23px;font-weight:700}
.portal-profile-identity strong,.portal-profile-identity span{display:block}.portal-profile-identity strong{font-size:21px;font-weight:650;color:var(--portal-app-text)}.portal-profile-identity span{margin-top:2px;color:var(--portal-app-muted);font-size:14px}
.portal-profile-contact{display:grid;grid-template-columns:1fr;gap:0;margin:0;border:1px solid var(--portal-app-border);border-radius:15px;background:#fff;overflow:hidden}
.portal-profile-contact>div{padding:12px 14px;border-bottom:1px solid var(--portal-app-border)}.portal-profile-contact>div:last-child{border-bottom:0}.portal-profile-contact dt{color:var(--portal-app-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.portal-profile-contact dd{margin:3px 0 0;color:var(--portal-app-text);font-size:14px}.portal-profile-contact a{color:inherit;text-decoration:none}.portal-profile-contact a:hover{color:var(--portal-app-accent)}
.portal-profile-card .portal-account-state{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:18px}.portal-profile-card .portal-account-state>div{min-width:0}.portal-profile-card .portal-account-state em{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#e9eef6;color:#51637a;font-size:11px;font-style:normal;font-weight:700}.portal-profile-card .portal-account-state.is-linked em{background:#dff5e9;color:#176649}
@media(max-width:760px){.portal-profile-card{max-width:none}.portal-profile-layout{grid-template-columns:1fr;gap:18px}.portal-profile-card .portal-account-state{align-items:flex-start;flex-direction:column}.portal-profile-identity{grid-template-columns:50px minmax(0,1fr)}.portal-profile-avatar{width:50px;height:50px;border-radius:15px}}

/* v7.3 task-focused CRM */
.portal-app-form{display:grid;gap:14px}.portal-app-form label{display:grid;gap:7px;font-weight:600}.portal-app-form input,.portal-app-form select,.portal-app-form textarea{width:100%;box-sizing:border-box;border:1px solid #d7e1ef;border-radius:13px;background:#fff;color:#172033;padding:12px 13px;font:inherit}.portal-app-form button{justify-self:start;border:0;border-radius:13px;background:#2864e8;color:#fff;padding:11px 16px;font:inherit;font-weight:600}.portal-priority-high{border-color:#f3c776!important;background:#fff8e8!important;color:#8a5300!important}.portal-priority-urgent{border-color:#f1a6a6!important;background:#fff0f0!important;color:#a51919!important}.portal-priority-low{border-color:#cbd9ea!important;background:#f7f9fc!important;color:#53677f!important}


/* v7.4.1 portal calendar navigation */
.portal-visually-hidden{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}
.portal-agenda-toolbar{display:grid!important;grid-template-columns:auto minmax(260px,1fr) auto!important;align-items:center!important;gap:16px!important}
.portal-month-nav{gap:8px!important;min-width:145px!important;white-space:nowrap!important}
.portal-calendar-shortcuts{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.portal-month-jump{display:flex;align-items:center;gap:6px}
.portal-month-jump label{margin:0}
.portal-month-jump input[type="month"]{min-height:36px;border:1px solid var(--portal-app-border,#dce4ef);border-radius:10px;background:#fff;padding:6px 9px;font:inherit;color:var(--portal-app-text,#172033)}
.portal-month-jump button{min-height:36px;border:0;border-radius:10px;background:var(--portal-app-accent,#2864e8);color:#fff;padding:0 12px;font:inherit;font-weight:650;cursor:pointer}
@media(max-width:760px){
  .portal-agenda-toolbar{grid-template-columns:1fr 1fr!important;gap:9px!important}
  .portal-calendar-title{grid-column:1/-1!important;grid-row:1!important;order:0!important}
  .portal-month-prev{grid-column:1!important;grid-row:2!important}
  .portal-month-next{grid-column:2!important;grid-row:2!important}
  .portal-month-nav{min-width:0!important;width:100%!important;padding:10px 8px!important}
  .portal-month-nav strong{font-size:12px!important}
  .portal-calendar-shortcuts{display:grid;grid-template-columns:1fr;gap:7px;width:100%}
  .portal-calendar-shortcuts>a{width:100%!important;box-sizing:border-box}
  .portal-month-jump{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto}
  .portal-month-jump input[type="month"]{width:100%;box-sizing:border-box}
}
@media(max-width:760px){
  .portal-agenda-toolbar > a.portal-month-prev,
  .portal-agenda-toolbar > a.portal-month-next{display:inline-flex!important}
}

/* v7.5 Portalagenda: app-ervaring met server-side maand- en daglinks */
.portal-agenda-app{display:grid!important;gap:18px!important;overflow:visible!important;padding:22px!important;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)!important}
.portal-agenda-app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.portal-agenda-app-heading>span,.portal-agenda-day-sheet-head>div>span{display:block;color:#2563eb;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.portal-agenda-app-heading h2{margin:4px 0 2px!important}.portal-agenda-app-heading p{margin:0;color:#64748b}
.portal-agenda-today{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:1px solid #bfdbfe;border-radius:14px;background:#eff6ff;color:#1d4ed8;text-decoration:none;font-weight:700}
.portal-agenda-month-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid #dbe7f5;border-radius:22px;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.06)}
.portal-agenda-arrow{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 14px;border:1px solid #dbe3ee;border-radius:15px;background:#fff;color:#172033;text-decoration:none;font-weight:700}
.portal-agenda-arrow>span[aria-hidden]{font-size:26px;line-height:1;color:#2563eb}
.portal-agenda-current-month{text-align:center;min-width:0}.portal-agenda-current-month>small{display:block;color:#64748b;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.portal-agenda-current-month>strong{display:block;margin-top:2px;font-size:23px;letter-spacing:-.03em;color:#0f172a}
.portal-agenda-month-picker{position:relative;display:inline-block;margin-top:5px}.portal-agenda-month-picker summary{list-style:none;cursor:pointer;color:#2563eb;font-size:12px;font-weight:700}.portal-agenda-month-picker summary::-webkit-details-marker{display:none}.portal-agenda-month-picker form{position:absolute;left:50%;top:calc(100% + 9px);z-index:40;display:grid;gap:10px;width:min(310px,82vw);padding:14px;border:1px solid #dbe3ee;border-radius:16px;background:#fff;box-shadow:0 22px 50px rgba(15,23,42,.18);transform:translateX(-50%);text-align:left}.portal-agenda-month-picker label{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:700}.portal-agenda-month-picker input{width:100%;min-width:0;box-sizing:border-box}.portal-agenda-month-picker button{min-height:42px;border:0;border-radius:12px;background:#2563eb;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.portal-agenda-legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap;color:#64748b;font-size:12px}.portal-agenda-legend span{display:inline-flex;align-items:center;gap:6px}.portal-agenda-legend i,.portal-agenda-day-indicators i{display:block;width:8px;height:8px;border-radius:999px}.portal-agenda-legend i.shift,.portal-agenda-day-indicators i.shift{background:#2563eb}.portal-agenda-legend i.leave,.portal-agenda-day-indicators i.leave{background:#f59e0b}.portal-agenda-legend i.availability,.portal-agenda-day-indicators i.availability{background:#10b981}
.portal-agenda-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;min-width:0}
.portal-agenda-weekday{padding:5px 0;text-align:center;color:#64748b;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.portal-agenda-day{position:relative;display:grid;align-content:space-between;gap:7px;min-width:0;min-height:86px;padding:10px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;color:#172033;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.portal-agenda-day:hover{border-color:#93c5fd;box-shadow:0 8px 20px rgba(37,99,235,.09);transform:translateY(-1px)}.portal-agenda-day.is-empty{border-color:transparent;background:transparent}.portal-agenda-day.is-today{border-color:#93c5fd;background:#eff6ff}.portal-agenda-day.is-selected{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 10px 24px rgba(37,99,235,.25)}
.portal-agenda-day-number{font-size:16px;font-weight:700}.portal-agenda-shift-time{font-size:12px;font-weight:700}.portal-agenda-day-indicators{display:flex;align-items:center;gap:4px}.portal-agenda-day.is-selected .portal-agenda-day-indicators i{outline:1px solid rgba(255,255,255,.72);outline-offset:1px}
.portal-agenda-day-sheet{display:grid!important;gap:16px!important;margin-top:2px!important;padding:20px!important;border:1px solid #dbe3ee!important;border-radius:24px!important;background:#fff!important;box-shadow:0 18px 46px rgba(15,23,42,.08)!important;scroll-margin-top:100px}
.portal-agenda-day-sheet-handle{display:none;width:44px;height:5px;margin:0 auto;border-radius:999px;background:#cbd5e1}.portal-agenda-day-sheet-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:16px!important}.portal-agenda-day-sheet-head h3{margin:3px 0 0!important}.portal-agenda-day-sheet-head>a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 13px;border:1px solid #bfdbfe;border-radius:13px;background:#eff6ff;color:#1d4ed8;text-decoration:none;font-weight:700}
.portal-agenda-shift-list{display:grid;gap:14px}.portal-agenda-shift-card{display:grid;gap:16px;padding:16px;border:1px solid #e2e8f0;border-left:4px solid var(--emp-color,#2563eb);border-radius:18px;background:#fbfdff}.portal-agenda-shift-primary{display:flex;align-items:center;gap:12px}.portal-agenda-shift-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#eaf2ff;color:#2563eb;font-size:22px}.portal-agenda-shift-primary strong{display:block;font-size:20px}.portal-agenda-shift-primary small{display:block;margin-top:2px;color:#64748b}.portal-agenda-shift-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.portal-agenda-shift-facts>div{padding:11px;border-radius:13px;background:#f1f5f9}.portal-agenda-shift-facts>div.wide{grid-column:1/-1}.portal-agenda-shift-facts dt{color:#64748b;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.portal-agenda-shift-facts dd{margin:3px 0 0;font-weight:700;color:#172033}
.portal-agenda-colleagues{display:grid;gap:10px}.portal-agenda-colleagues-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.portal-agenda-colleagues-head h4{margin:0}.portal-agenda-colleagues-head>span{padding:4px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:11px;font-weight:700}.portal-agenda-colleague-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.portal-agenda-colleague-list article{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.portal-agenda-colleague-list article>i{width:10px;height:10px;margin-top:5px;border-radius:999px;background:var(--emp-color,#6366f1);flex:0 0 auto}.portal-agenda-colleague-list strong,.portal-agenda-colleague-list small,.portal-agenda-colleague-list em{display:block}.portal-agenda-colleague-list small{margin-top:2px;color:#64748b}.portal-agenda-colleague-list em{margin-top:3px;color:#2563eb;font-size:11px;font-style:normal;font-weight:700}.portal-agenda-colleagues>p{margin:0;color:#64748b}
.portal-agenda-empty-day{display:flex;align-items:center;gap:13px;padding:18px;border:1px dashed #cbd5e1;border-radius:17px;background:#f8fafc}.portal-agenda-empty-day>span{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#fff7ed;font-size:23px}.portal-agenda-empty-day strong{display:block}.portal-agenda-empty-day p{margin:3px 0 0;color:#64748b}.portal-agenda-day-context{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:720px){
  .portal-agenda-app{gap:13px!important;padding:14px!important;border-radius:24px!important}
  .portal-agenda-app-header{align-items:center}.portal-agenda-app-heading p{display:none}.portal-agenda-today{min-height:38px;padding:0 12px;border-radius:12px;font-size:13px}
  .portal-agenda-month-nav{position:sticky;top:70px;z-index:24;grid-template-columns:46px minmax(0,1fr) 46px;gap:7px;padding:9px;border-radius:19px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px)}
  .portal-agenda-arrow{justify-content:center;width:46px;min-height:46px;padding:0;border-radius:14px}.portal-agenda-arrow-label{display:none}.portal-agenda-current-month>strong{font-size:18px}.portal-agenda-current-month>small{font-size:9px}.portal-agenda-month-picker{margin-top:2px}.portal-agenda-month-picker summary{font-size:11px}.portal-agenda-month-picker form{position:fixed;left:14px;right:14px;top:auto;bottom:calc(84px + env(safe-area-inset-bottom));width:auto;transform:none;border-radius:22px;padding:17px}
  .portal-agenda-legend{gap:10px;padding:0 3px;font-size:10px}
  .portal-agenda-month-grid{gap:4px}.portal-agenda-weekday{padding:2px 0;font-size:9px}.portal-agenda-day{min-height:50px;padding:6px;border-radius:13px;gap:3px;place-items:center;align-content:center}.portal-agenda-day-number{font-size:14px}.portal-agenda-shift-time{display:none}.portal-agenda-day-indicators{justify-content:center;gap:2px}.portal-agenda-day-indicators i{width:5px;height:5px}.portal-agenda-day.is-selected{box-shadow:0 7px 16px rgba(37,99,235,.22)}
  .portal-agenda-day-sheet{margin-top:0!important;padding:15px!important;border-radius:24px!important;box-shadow:0 -8px 30px rgba(15,23,42,.07)!important}.portal-agenda-day-sheet-handle{display:block}.portal-agenda-day-sheet-head{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.portal-agenda-day-sheet-head>a{width:max-content;min-height:38px}
  .portal-agenda-shift-card{padding:13px;border-radius:17px}.portal-agenda-shift-primary strong{font-size:18px}.portal-agenda-shift-facts{grid-template-columns:1fr 1fr}.portal-agenda-colleague-list{grid-template-columns:1fr}.portal-agenda-colleague-list article{min-height:54px}.portal-agenda-empty-day{padding:14px}
}
@media(max-width:380px){.portal-agenda-app{padding:11px!important}.portal-agenda-month-grid{gap:3px}.portal-agenda-day{min-height:46px;padding:4px}.portal-agenda-shift-facts{grid-template-columns:1fr}}

/* v7.5 mobiele agendacorrectie: voorkom dat oudere portalspecifieke regels de appbediening overschrijven. */
@media(max-width:720px){
  .portal-card .portal-agenda-arrow-label{display:none!important;margin:0!important}
  .portal-agenda-month-nav{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important}
  .portal-card .portal-agenda-month-picker form{position:fixed!important;left:14px!important;right:14px!important;top:auto!important;bottom:calc(84px + env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important;box-sizing:border-box!important;transform:none!important}
}
