/* Ticketflow v1000 unified CSS - generated from v28.2 base */


/* === BEGIN style.css === */

:root{
  --blue:#255f9f;
  --blue-dark:#1f538a;
  --yellow:#e0a12b;
  --bg:#eef2f6;
  --surface:#ffffff;
  --surface-soft:#f7f9fc;
  --text:#17314d;
  --muted:#6f8298;
  --border:#d8e0ea;
  --border-strong:#bfd0e2;
  --shadow:0 10px 28px rgba(19,49,77,.06);
  --radius:16px;
  --good:#eaf8ef;
  --good-text:#1e7a47;
  --warn:#fff6df;
  --warn-text:#9f6a00;
  --bad:#fdeaea;
  --bad-text:#a43131;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.45}
a{color:var(--blue);text-decoration:none} a:hover{text-decoration:none}
.site-shell{min-height:100vh;display:flex;flex-direction:column}
.header-accent,.footer-accent{height:1px;background:rgba(224,161,43,.35)}
.header-bar{background:var(--blue);min-height:68px}
.footer-bar{min-height:34px;background:var(--blue)}
.header-inner,.footer-inner{max-width:1440px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.header-inner{min-height:68px}
.footer-inner{min-height:34px;color:rgba(255,255,255,.86);font-size:11px;font-weight:600}
.brand-inline{display:flex;align-items:center;gap:10px;color:#fff;min-width:220px}
.brand-inline:hover{color:#fff}
.brand-image{display:block;object-fit:contain}
.header-logo{width:30px;height:30px}.login-logo{width:min(160px,44vw);height:auto}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}.brand-copy strong{font-size:16px;font-weight:800}.brand-copy small{font-size:10px;color:rgba(255,255,255,.8);margin-top:3px}
.top-nav{display:flex;align-items:center;gap:6px;flex:1;justify-content:center;flex-wrap:wrap}.nav-card{padding:7px 10px;border-radius:10px;color:#e7f0fa;font-weight:700;font-size:13px}.nav-card.active,.nav-card:hover{background:rgba(255,255,255,.12);color:#fff}

.top-nav a{padding:7px 10px;border-radius:10px;color:#e7f0fa;font-weight:700;font-size:13px;display:inline-flex;align-items:center}
.top-nav a.active,.top-nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.site-header{position:sticky;top:0;z-index:50}
.calendar-controls{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:12px}
.calendar-label{text-align:center;font-size:18px;font-weight:800;color:var(--text)}
.board-days-wrap{overflow:auto;padding-bottom:4px}
.board-days.month-grid{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:12px;min-width:1260px}
.board-days.week-grid{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:12px;min-width:1260px}
.board-days.year-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px}
.board-days.single-day{display:grid;grid-template-columns:minmax(320px,1fr)}
.day-card{min-height:170px}
@media (max-width:960px){.calendar-controls{grid-template-columns:1fr}.calendar-label{text-align:left}}

.header-user{display:flex;align-items:center;gap:12px;min-width:auto;color:#fff;flex-shrink:0}.header-user-auth{margin-left:auto}.header-actions{margin:0;display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.header-actions .btn{margin:0}.header-identity{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;line-height:1.1;white-space:nowrap}.user-name{font-weight:700;font-size:13px}.user-meta{font-size:10px;color:rgba(255,255,255,.8)}.user-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:4px}.user-links a{font-size:11px;color:#fff;opacity:.9}.logout-link{font-weight:700}
.header-empty{width:100%}
.page-shell{flex:1;max-width:1440px;width:100%;margin:0 auto;padding:22px 24px 28px}
.login-shell{flex:1;display:flex;align-items:center;justify-content:center;padding:22px 18px;background:var(--bg)}
.welcome-shell{width:min(420px,100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;transform:translateY(-6px)}
.brand-center{display:flex;justify-content:center}.login-title{font-size:22px;font-weight:700;color:var(--text)}
.language-switch{display:flex;gap:8px;align-self:flex-end}.language-switch a{padding:5px 9px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:12px;color:var(--muted);font-weight:700}.language-switch a.active{color:var(--blue);border-color:#9db7d3;background:#f6faff}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.login-panel{width:min(330px,100%);padding:18px 18px 14px}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}.title{font-size:26px;font-weight:800;line-height:1.1}.sub{color:var(--muted);margin-top:5px}
.grid{display:grid;gap:16px}.grid.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}
.stat{padding:18px}.stat .value{font-size:32px;font-weight:800;color:var(--blue)}.stat .label{color:var(--muted);font-weight:700}.stat-link{transition:.15s ease}.stat-link:hover{transform:translateY(-1px);border-color:#9bb6d2}
.row{display:flex;gap:16px;flex-wrap:wrap}.row>*{flex:1 1 320px}
.two-col{display:grid;grid-template-columns:1.65fr 1fr;gap:16px}.project-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:16px}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.section-head h3{margin:0;font-size:18px}
.field{margin-bottom:12px;text-align:left}.field label{display:block;margin-bottom:6px;color:var(--text);font-weight:700;font-size:13px}
.field input:not([type='checkbox']):not([type='radio']),.field select,.field textarea{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:12px;padding:10px 12px;font-size:13px;outline:none;transition:border-color .15s ease, box-shadow .15s ease}
.field input[type='checkbox'],.field input[type='radio'],.check input[type='checkbox'],.check input[type='radio']{width:16px !important;height:16px !important;min-width:16px !important;min-height:16px !important;padding:0 !important;margin:0 !important;border:none !important;border-radius:4px;accent-color:#1f66aa;appearance:auto !important;-webkit-appearance:auto !important;-moz-appearance:auto !important;box-shadow:none !important;flex:0 0 auto}
.field textarea{min-height:100px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8fb1d4;box-shadow:0 0 0 4px rgba(37,95,159,.08)}
.check{display:flex;gap:8px;align-items:center;color:var(--text);font-size:13px;flex-wrap:wrap}
.field .check{width:auto;max-width:100%;margin-bottom:8px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.toolbar.tight{gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;border:1px solid transparent;color:#fff;font-weight:800;cursor:pointer;transition:.15s ease;font-size:13px;background:linear-gradient(180deg,var(--blue),var(--blue-dark));box-shadow:0 8px 16px rgba(37,95,159,.15)}
.btn:hover{transform:translateY(-1px)}.btn.secondary{background:#fff;border-color:var(--border-strong);color:var(--text);box-shadow:none}.btn.danger{background:linear-gradient(180deg,#d95b5b,#b93e3e)}.btn.wide{width:100%}.btn-small{padding:7px 10px;font-size:12px}
.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef4fb;color:var(--blue);font-size:11px;font-weight:700}.badge.good{background:var(--good);color:var(--good-text)}.badge.warn{background:var(--warn);color:var(--warn-text)}.badge.bad{background:var(--bad);color:var(--bad-text)}
.flash-dock{position:fixed;z-index:70;right:18px;top:76px;display:grid;gap:8px;max-width:min(440px,90vw)}.flash-dock.guest{left:50%;right:auto;top:auto;bottom:62px;transform:translateX(-50%);width:min(420px,88vw)}
.flash{padding:11px 14px;border-radius:12px;background:#edf4fb;border:1px solid #d7e7f7;color:var(--text);font-size:13px;box-shadow:var(--shadow)}.flash.error{background:var(--bad);border-color:#f1c7c7;color:var(--bad-text)}.flash.success{background:var(--good);border-color:#cbe7d3;color:var(--good-text)}
.table{width:100%;border-collapse:separate;border-spacing:0}.table th,.table td{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.table th{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.table tr:last-child td{border-bottom:none}.table-compact th,.table-compact td{padding:9px 7px}.table-link-row{cursor:pointer}.table-link-row:hover td{background:#f7fafe}
.muted{color:var(--muted)}.small{font-size:12px}.stack{display:grid;gap:8px}.list-clean{list-style:none;margin:0;padding:0}.list-clean li{padding:10px 0;border-bottom:1px solid var(--border)}.list-clean li:last-child{border-bottom:none}
.strong-link{font-weight:700}.inline-form{display:inline}.chip-link{display:inline-flex;align-items:center;gap:4px;background:#f7f9fc;border:1px solid var(--border);padding:5px 8px;border-radius:999px;font-size:12px;color:var(--text)}.chip-link.active{background:#edf4fb;border-color:#9ab6d2;color:var(--blue)}.danger-text{color:#b84141}
.message{padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}.message .meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px;margin-bottom:8px}.attachment-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.file-chip{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:7px 9px;border-radius:999px;background:#fff;border:1px solid var(--border)}
.filter-card{margin-bottom:16px}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:12px}.calendar-hero{margin-bottom:16px}.board-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}.board-days.single-day{grid-template-columns:minmax(0,1fr)}.day-card{background:var(--surface-soft);border:1px solid var(--border);border-radius:14px;padding:10px;min-height:116px}.day-title{font-weight:800;margin-bottom:7px;color:var(--blue);font-size:13px}.mini-event{display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:12px;background:#edf4fb;margin-bottom:6px;border:1px solid #d8e4f2}.mini-event.deadline{background:#fff4e0;border-color:#eac97f}
.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.meta-grid strong{display:block;font-size:12px;margin-bottom:4px}.meta-grid span{display:block;color:var(--muted);font-size:13px}
.editor-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.editor-toolbar button{padding:7px 10px;border-radius:10px;border:1px solid var(--border);background:#f8fafc;color:var(--text);cursor:pointer}.editor{min-height:220px;border:1px solid var(--border-strong);border-radius:12px;padding:12px;background:#fff;overflow:auto}.email-preview{background:#f7f9fc;border:1px solid var(--border);border-radius:14px;padding:14px;min-height:180px}.email-preview-subject{font-weight:800;margin-bottom:10px}
.footer-note{color:var(--muted);font-size:11px;margin-top:10px}.clickable-card:hover{border-color:#9bb6d2}
@media (max-width:1200px){.grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid,.two-col{grid-template-columns:1fr}.filter-grid{grid-template-columns:1fr 1fr}}
@media (max-width:920px){.header-inner{padding:10px 16px;flex-direction:column;align-items:flex-start}.top-nav{justify-content:flex-start}.header-user{align-items:flex-start}.page-shell{padding:20px 16px 24px}.filter-grid{grid-template-columns:1fr}}
@media (max-width:640px){.header-inner,.footer-inner{padding:0 14px}.header-bar{min-height:auto}.header-logo{width:28px;height:28px}.login-logo{width:min(130px,42vw)}.title{font-size:22px}.page-shell{padding:18px 14px 22px}.grid.stats{grid-template-columns:1fr}.top{flex-direction:column;align-items:flex-start}.flash-dock{left:50%;right:auto;transform:translateX(-50%);top:auto;bottom:58px;width:min(94vw,420px)}}

.guest-top-actions{display:flex;gap:8px;align-items:center}
.lang-chip{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:12px;font-weight:700}
.lang-chip.active,.lang-chip:hover{background:rgba(255,255,255,.24);color:#fff}
.flash-stack{display:grid;gap:10px}
.guest-flash-stack{position:fixed;left:50%;bottom:72px;transform:translateX(-50%);width:min(420px,calc(100vw - 32px));z-index:40}
.login-shell .welcome-shell{margin-top:-14px}
.login-panel .title{font-size:24px}
.header-accent,.footer-accent{height:1px}
.header-bar{min-height:68px;height:auto}
.footer-bar{min-height:28px}
.header-inner{min-height:68px;height:auto;padding-top:8px;padding-bottom:8px}
.footer-inner{min-height:28px;padding:6px 28px}
.page-shell{max-width:1460px;padding-top:22px}
.dashboard-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px}
.card-link{display:block;color:inherit}
.card-link:hover{transform:translateY(-1px);color:inherit}
.filter-card{margin-bottom:18px}
.filter-grid{display:grid;grid-template-columns:1.2fr repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.compact-toolbar{align-items:center;margin-top:4px}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form select{max-width:150px;padding:9px 10px;border-radius:12px;border:1px solid var(--border-strong)}
.attachment-list{margin-top:10px;color:var(--muted);font-size:13px}
.danger-lite{background:#fff7f7;color:#b93e3e;border-color:#efc4c4}
.editor-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.editor-toolbar button{border:1px solid var(--border);background:#fff;border-radius:12px;padding:8px 10px;cursor:pointer}
.editor{min-height:220px;border:1px solid var(--border-strong);border-radius:16px;padding:14px;background:#fff;overflow:auto}
.email-preview{border:1px solid var(--border);border-radius:16px;padding:16px;background:#fff;min-height:220px}
.preview-subject{font-weight:800;margin:6px 0 14px 0}
.mini-actions{display:flex;gap:6px;margin-top:6px}.mini-actions form{display:inline}.mini-btn{border:1px solid var(--border);background:#fff;border-radius:10px;padding:3px 8px;font-size:11px;cursor:pointer}
.day-card{min-height:136px}
@media (max-width:1200px){.dashboard-grid{grid-template-columns:1fr}.filter-grid{grid-template-columns:1fr 1fr}.page-shell{max-width:100%}}
@media (max-width:760px){.filter-grid{grid-template-columns:1fr}.guest-top-actions{padding-right:8px}.header-bar{height:auto}.header-inner{height:auto}.guest-flash-stack{bottom:58px}.top-nav{gap:4px}.top-nav a{padding:6px 10px;font-size:13px}}


.logout-form{margin:0}
.logout-button{background:none;border:none;padding:0;color:#fff;cursor:pointer;font:inherit}
.logout-button:hover{text-decoration:underline}
.danger-link{color:var(--bad-text)!important}
.security-stats{grid-template-columns:repeat(4,minmax(0,1fr));}


.attachment-list{display:grid;gap:10px;margin-top:10px}
.attachment-item{padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}
.attachment-preview{margin-top:8px}
.attachment-preview img{display:block;max-width:280px;max-height:220px;border-radius:12px;border:1px solid var(--border);background:#fff}

.field-help{margin-top:6px;font-size:12px}
.error-text{color:var(--bad-text)}
.dt-wrap{display:flex;align-items:stretch;gap:6px}
.dt-wrap input[type="datetime-local"]{flex:1}
.dt-controls{display:flex;flex-direction:column;gap:4px}
.dt-btn{min-width:32px;border:1px solid var(--border);background:#f8fafc;border-radius:10px;cursor:pointer;color:var(--text);font-weight:700}
.dt-btn:hover{background:#eef5fb}
.file-text-preview{white-space:pre-wrap;line-height:1.5;background:#fbfcfe;border:1px solid var(--border);padding:14px;border-radius:12px;max-height:70vh;overflow:auto}
.file-html-preview{background:#fff;border:1px solid var(--border);padding:14px;border-radius:12px;max-height:70vh;overflow:auto}
.table-wrap{overflow:auto}
.danger{background:#b42318;color:#fff}


.dt-wrap{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start}
.dt-controls{display:flex;flex-direction:column;gap:6px}
.dt-btn{width:40px;height:30px;border-radius:999px;border:1px solid var(--border);background:#f5f8fc;color:var(--text);cursor:pointer}
.dt-quick-row{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.chip-link.tiny{padding:5px 8px;font-size:12px}
.mini-event{cursor:grab}
.mini-event.dragging{opacity:.55}
.day-card.drag-over{outline:2px dashed var(--blue);background:#f7fbff}
.company-inline{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

.color-palette{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 0}
.color-swatch{width:26px;height:26px;border-radius:999px;border:2px solid #fff;box-shadow:0 0 0 1px var(--border);background:var(--swatch);padding:0;min-width:26px}
.color-swatch:hover{transform:scale(1.06)}
.selected-row td{background:#f6fbff}
.field-group{margin:10px 0 14px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}
.compact-head{margin-bottom:10px}
code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#f4f7fb;border:1px solid var(--border);padding:2px 6px;border-radius:8px}


.footer-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.footer-language-switch{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.footer-lang-chip{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);min-width:48px}
.footer-lang-chip.active,.footer-lang-chip:hover{background:rgba(255,255,255,.24);color:#fff}
@media (max-width:760px){.footer-inner{gap:10px;align-items:flex-start;flex-direction:column}.footer-right{width:100%;justify-content:space-between}.footer-language-switch{order:2}}

.editor-toolbar .color-swatch{background:var(--swatch)!important;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.16), inset 0 0 0 1px rgba(255,255,255,.18);display:inline-block}
.editor-toolbar .color-swatch:focus,.editor-toolbar .color-swatch:hover{transform:scale(1.08);outline:none}

.required-star{color:#dc2626;font-weight:700}
.color-swatch{background:var(--swatch)!important;border:1px solid rgba(0,0,0,.18)!important;width:28px;height:28px;border-radius:999px;display:inline-block;padding:0}

.analytics-bars{gap:12px}
.analytic-row{display:grid;grid-template-columns:minmax(110px,200px) 1fr auto;gap:12px;align-items:center}
.analytic-label{font-weight:700}
.analytic-bar{height:12px;background:#edf3f9;border-radius:999px;overflow:hidden;border:1px solid var(--border)}
.analytic-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--yellow));border-radius:999px}
.analytic-value{font-weight:800;color:var(--text)}
.file-dropzone{display:grid;gap:8px;padding:14px;border:2px dashed var(--border-strong);border-radius:14px;background:#f8fbfe;cursor:pointer}
.file-dropzone.drag-over{border-color:var(--blue);background:#eef6ff}
.file-dropzone .drop-title{font-weight:700}
.file-dropzone .drop-sub{color:var(--muted);font-size:12px}
.file-drop-list{display:flex;flex-wrap:wrap;gap:6px}
.file-drop-list span{padding:4px 8px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:12px}
.image-resize-box{display:inline-block;resize:both;overflow:auto;max-width:100%;min-width:120px;min-height:80px;border-radius:12px}
.image-resize-box img{width:100%;height:auto;max-width:none!important;max-height:none!important;cursor:zoom-in}
.preview-lightbox{position:fixed;inset:0;background:rgba(10,20,35,.78);display:none;align-items:center;justify-content:center;z-index:2000;padding:30px}
.preview-lightbox.open{display:flex}
.preview-lightbox img{max-width:92vw;max-height:90vh;border-radius:16px;box-shadow:0 18px 48px rgba(0,0,0,.35);background:#fff}
.preview-lightbox .close-btn{position:absolute;top:18px;right:18px;border:none;background:#fff;color:#17314d;border-radius:999px;width:42px;height:42px;font-size:24px;cursor:pointer}

@media (max-width:920px){.header-user-auth{margin-left:0}.header-identity{align-items:flex-start}.header-actions{justify-content:flex-start}}


/* header layout hardening */
.header-inner{flex-wrap:nowrap;align-items:center}
.top-nav{min-width:0}
.header-user-auth{margin-left:auto;display:flex;align-items:center;gap:14px;flex-direction:row;align-self:center}
.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
.header-identity{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;align-self:center;min-height:40px}
@media (max-width:920px){.header-inner{flex-wrap:wrap}.header-user-auth{width:100%;justify-content:space-between}.header-identity{align-items:flex-start}}

.nav-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;margin-left:6px;border-radius:999px;background:#fff;color:#1f5ca8;font-size:11px;font-weight:800;line-height:1}

.ticket-message-html{max-width:100%;overflow:auto;word-break:break-word}
.ticket-message-html img{max-width:100%!important;height:auto!important}
.ticket-message-html table{max-width:100%!important;width:100%!important;table-layout:auto!important;border-collapse:collapse}
.ticket-message-html td,.ticket-message-html th{max-width:100%!important;word-break:break-word}
.ticket-message-html [style*="width:"]{max-width:100%!important}
.ticket-message-html iframe,.ticket-message-html video{max-width:100%!important}
.ticket-reply-editor{min-height:180px}
.color-palette{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.color-swatch{width:28px;height:28px;border-radius:999px;border:1px solid var(--border-strong);background:var(--swatch)!important;padding:0;min-width:28px}

.mail-readbox{border:1px solid #d7deea;border-radius:18px;background:#fff;overflow:hidden;margin-top:10px}
.mail-readbox-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid #e6ebf3;background:#f8fafc}
.mail-readbox-frame{width:100%;min-height:420px;height:620px;border:0;background:#fff;display:block}
.mail-readbox.is-expanded .mail-readbox-frame{height:900px}
.calendar-filter-grid{grid-template-columns:1.4fr 1.2fr 1.4fr 1fr;align-items:end}
.mini-event-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.calendar-quick-edit{margin-top:8px}
.calendar-quick-edit summary{cursor:pointer;color:var(--blue);font-weight:700}
.quick-edit-form{margin-top:8px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}
.quick-edit-form .field{margin-bottom:8px}
@media (max-width:1200px){.calendar-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.calendar-filter-grid{grid-template-columns:minmax(0,1fr)}}

.codebox{background:#f6f7f9;border:1px solid #d8dde6;border-radius:10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;overflow:auto;word-break:break-all;}


:root{--sticky-top-main:70px;--sticky-top-sub:126px}
.page-shell{padding-top:18px}
.module-context-bar{position:sticky;top:var(--sticky-top-main);z-index:42;margin:0 0 14px 0;padding:10px 14px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.module-context-bar .module-title{display:flex;align-items:center;gap:12px;min-width:0}
.module-context-bar .module-tag{width:10px;height:38px;border-radius:999px;background:var(--module-accent,var(--blue))}
.module-context-bar .module-copy strong{display:block;font-size:16px;line-height:1.1}
.module-context-bar .module-copy small{display:block;color:var(--muted);margin-top:3px}
.module-context-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.block-nav{position:sticky;top:var(--sticky-top-sub);z-index:39;margin:0 0 16px 0;padding:8px 10px;border:1px solid var(--border);border-radius:16px;background:rgba(247,249,252,.95);backdrop-filter:blur(8px);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.block-nav a,.block-nav button{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--text);font-weight:700;font-size:13px;cursor:pointer}
.block-nav a:hover,.block-nav button:hover,.block-nav a.active,.block-nav button.active{background:#fff;border-color:var(--border-strong);color:var(--blue)}
.block-panel{position:relative;scroll-margin-top:185px}
.block-panel .block-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.block-panel .block-panel-title{display:flex;flex-direction:column;gap:2px}
.block-panel .block-panel-title h3,.block-panel .block-panel-title h2{margin:0}
.block-panel .block-panel-title span{color:var(--muted);font-size:12px}
.block-panel .block-panel-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.focus-target.is-focused{outline:2px solid rgba(37,95,159,.22);box-shadow:0 18px 44px rgba(17,44,72,.10)}
.focus-layout-active .focus-target{opacity:.52;transform:scale(.995);transition:opacity .2s ease,transform .2s ease}
.focus-layout-active .focus-target.is-focused{opacity:1;transform:none}
.focus-layout-active .focus-secondary{display:none !important}
.focus-layout-active .focus-primary{width:100% !important;max-width:100% !important;grid-column:1 / -1}
.focus-layout-active .dashboard-grid,.focus-layout-active .two-col{grid-template-columns:1fr !important;display:grid}
.focus-layout-active .block-panel{max-width:100%}
.module-stack{display:grid;gap:16px}
.portal-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:16px;align-items:start}
.sticky-summary{position:sticky;top:calc(var(--sticky-top-sub) + 58px)}
.card-minimal{padding:18px;border-radius:18px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}
.section-anchor-spacer{display:block;position:relative;top:-180px;visibility:hidden}
@media (max-width:1100px){.portal-grid{grid-template-columns:1fr}.sticky-summary{position:static}.module-context-bar,.block-nav{top:auto;position:relative}}
@media (max-width:760px){.module-context-bar .module-copy strong{font-size:15px}.block-nav{padding:8px}.block-nav a,.block-nav button{padding:7px 9px;font-size:12px}}

.qafox-page{align-items:start}
.qafox-page .focus-primary{min-width:0}
.qafox-subcard{border:1px solid var(--border);border-radius:16px;padding:16px;background:#fbfcfe}
.list-steps{margin:0;padding-left:18px;display:grid;gap:10px;color:var(--text)}
.row-selected td{background:#f3f8ff}
.table-wrap{overflow:auto}
.toolbar.wrap{flex-wrap:wrap}


.app-launch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:18px}
.app-launch-card{display:flex;flex-direction:column;gap:14px}
.app-launch-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.app-launch-head h3{margin:0 0 4px 0}
.app-module-list{display:flex;flex-direction:column;gap:10px}
.app-module-link{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(10,74,142,.12);border-radius:12px;text-decoration:none;color:inherit;background:#fff}
.app-module-link:hover{border-color:rgba(10,74,142,.3);box-shadow:0 6px 16px rgba(15,23,42,.06)}
.badge-soft{background:#eef4ff;color:#0A4A8E;border:1px solid rgba(10,74,142,.12)}


/* app chooser refinement */
.app-launch-grid-vertical{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;align-items:stretch}
.app-launch-card-vertical{position:relative;display:flex;flex-direction:column;gap:0;padding:0;min-height:480px;overflow:hidden;color:var(--text);text-decoration:none}
.app-launch-card-vertical:hover{transform:translateY(-2px);border-color:var(--border-strong);text-decoration:none}
.app-launch-topbar{height:10px;background:var(--app-accent,var(--blue))}
.app-launch-body{display:flex;flex-direction:column;gap:16px;padding:18px 18px 14px;flex:1}
.app-launch-copy h3{margin:0 0 6px 0;font-size:28px;line-height:1.05}
.app-launch-subtitle{min-height:44px;font-size:14px}
.app-module-list-compact{display:grid;gap:10px;margin-top:6px}
.app-module-link-static{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--border);color:var(--text)}
.app-module-link-static:first-child{border-top:none;padding-top:0}
.app-launch-footer{padding:0 18px 18px}
.app-launch-footer .btn{pointer-events:none;background:linear-gradient(180deg,var(--app-accent,var(--blue)),color-mix(in srgb, var(--app-accent,var(--blue)) 84%, #163b63));border:none;box-shadow:none}
@supports not (color: color-mix(in srgb, red 50%, blue)){
  .app-launch-footer .btn{background:linear-gradient(180deg,var(--app-accent,var(--blue)),var(--app-accent,var(--blue)))}
}

.app-launch-card-clickable{cursor:pointer}
.app-launch-card-clickable:focus-visible{outline:3px solid rgba(10,74,142,.28);outline-offset:2px}
.app-module-link-static{text-decoration:none;border-radius:12px;padding:12px 14px;border:1px solid rgba(10,74,142,.08);background:#fff}
.app-module-link-static:hover{border-color:rgba(10,74,142,.24);background:#fbfdff;box-shadow:0 6px 16px rgba(15,23,42,.05)}
.app-module-link-static:first-child{padding-top:12px}
.app-launch-footer .btn{pointer-events:auto}

@media (min-width:1200px){
  .app-launch-grid-vertical{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:900px){
  .app-launch-grid-vertical{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .app-launch-grid-vertical{grid-template-columns:minmax(0,1fr)}
  .app-launch-card-vertical{min-height:auto}
}


.auth-body .header-bar{background:#2f67a1;min-height:62px}
.auth-body .header-inner{justify-content:flex-start;gap:18px;padding:10px 18px}
.auth-body .top-nav{justify-content:flex-start;gap:10px;flex:0 1 auto}
.auth-body .top-nav a{font-size:16px;font-weight:800;color:#fff;padding:11px 16px;border-radius:12px;background:transparent}
.auth-body .top-nav a.active,.auth-body .top-nav a:hover{background:rgba(255,255,255,.14);color:#fff}
.auth-body .header-user-auth{margin-left:auto}


/* V25.6 BASIC CLEANBUILD HEADER LOGO */
.auth-body .site-header .brand-inline{display:flex!important;min-width:210px;flex-shrink:0}
.auth-body .header-logo{width:34px;height:34px}
.auth-body .brand-copy strong{font-size:15px}
.auth-body .brand-copy small{font-size:10px}
.auth-body .top-nav{justify-content:flex-start}
@media (max-width:920px){.auth-body .site-header .brand-inline{min-width:auto}}

/* V25.6C - rechtermuisknop/contextmenu basismodules */
.tf-context-menu{
  position:fixed;
  z-index:9999;
  width:285px;
  display:none;
  padding:8px;
  border:1px solid rgba(10,74,142,.18);
  border-radius:16px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,23,42,.22);
}
.tf-context-menu.show{display:block}
.tf-context-menu button{
  width:100%;
  border:0;
  background:transparent;
  padding:10px 11px;
  border-radius:12px;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  display:block;
}
.tf-context-menu button:hover{background:#f1f6ff;color:#0A4A8E}
.tf-context-menu button:disabled{opacity:.45;cursor:not-allowed}
.tf-context-menu button strong{display:block;font-size:13px;line-height:1.2}
.tf-context-menu button small{display:block;margin-top:3px;font-size:11px;color:var(--muted);line-height:1.2}
.tf-context-menu .ctx-sep{height:1px;background:var(--border);margin:6px 4px}
[data-ticket-row], [data-project-row], [data-task-row], [data-event-row], [data-admin-card], [data-drop-date]{cursor:context-menu}
[data-ticket-row]:hover td, [data-project-row]:hover td, [data-task-row]:hover td, [data-event-row]:hover td{background:#f8fbff}


.mini-event[class*="calendar-color-"]{border-left:5px solid var(--event-color,#c9d5e2)}
.calendar-color-red{--event-color:#d92d20}
.calendar-color-orange{--event-color:#f79009}
.calendar-color-yellow{--event-color:#eaaa08}
.calendar-color-green{--event-color:#12b76a}
.calendar-color-teal{--event-color:#14b8a6}
.calendar-color-blue{--event-color:#2e90fa}
.calendar-color-purple{--event-color:#7a5af8}
.calendar-color-gray{--event-color:#98a2b3}

.calendar-drag-hint{margin:0 0 10px;color:var(--muted);font-size:13px}
.calendar-drag-zones{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.drag-zone{padding:9px 12px;border:1px dashed #b8c7db;border-radius:12px;background:#f8fbff;color:#183b68;font-weight:700;font-size:13px;min-width:92px;text-align:center}
.calendar-dragging-active .drag-zone{background:#eef6ff;border-color:#2e90fa;box-shadow:0 0 0 3px rgba(46,144,250,.10)}
.drag-zone.drag-over,.day-card.drag-over,.time-drop-slot.drag-over{background:#e8f3ff!important;border-color:#2e90fa!important;box-shadow:0 0 0 3px rgba(46,144,250,.16)}
[data-event-row].dragging{opacity:.55;transform:scale(.99)}
.time-drop-details{margin:8px 0 10px;border:1px solid #e2e8f0;border-radius:12px;background:#fbfdff;overflow:hidden}
.time-drop-details summary{cursor:pointer;padding:8px 10px;font-weight:800;color:#29486c;font-size:12px;list-style:none}
.time-drop-details summary::-webkit-details-marker{display:none}
.time-drop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;padding:8px;border-top:1px solid #e2e8f0}
.time-drop-slot{padding:7px 8px;border:1px dashed #c5d2e3;border-radius:10px;background:#fff;color:#29486c;font-weight:700;font-size:12px;text-align:center}
.calendar-dragging-active .time-drop-slot{background:#f0f7ff;border-color:#8fc5ff}


.tf-context-menu{overflow:visible;max-height:calc(100vh - 18px)}
.tf-context-menu button{min-height:43px}
.tf-context-menu button span{display:block;min-width:0}
.ctx-submenu{position:relative}
.ctx-submenu-trigger{display:flex!important;align-items:center;justify-content:space-between;gap:12px}
.ctx-submenu-trigger b{font-size:22px;line-height:1;color:#60728b;font-weight:800}
.ctx-submenu-panel{position:absolute;left:calc(100% + 8px);top:-8px;width:238px;display:none;padding:8px;border:1px solid rgba(10,74,142,.18);border-radius:16px;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.22);z-index:10000}
.ctx-submenu:hover > .ctx-submenu-panel,.ctx-submenu:focus-within > .ctx-submenu-panel{display:block}
.ctx-submenu-panel.open-left{left:auto;right:calc(100% + 8px)}
@media (max-width:760px){.ctx-submenu-panel{position:static;width:auto;margin:6px 0 4px 10px;box-shadow:none;border-color:var(--border);background:#f8fbff}.ctx-submenu-trigger b{transform:rotate(90deg)}}

/* V25.8K - innovatieve planning muisacties */
.mini-event[data-event-row], tr[data-event-row]{position:relative;user-select:none}
.mini-event.resize-edge-left::before,.mini-event.resize-edge-right::after{content:'';position:absolute;top:8px;bottom:8px;width:6px;border-radius:999px;background:rgba(10,74,142,.16);pointer-events:none}
.mini-event.resize-edge-left::before{left:3px}.mini-event.resize-edge-right::after{right:3px}
.mini-event.resize-edge-top{box-shadow:inset 0 4px 0 rgba(10,74,142,.22)}
.mini-event.resize-edge-bottom{box-shadow:inset 0 -4px 0 rgba(10,74,142,.22)}
.mini-event.resizing-active{outline:2px solid rgba(10,74,142,.35);outline-offset:2px;background:#f5faff}
body.calendar-resize-active{cursor:grabbing!important}
.calendar-drag-hint strong{color:var(--blue)}
.task-source-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:#eef5ff;border:1px solid #cfe0fb;color:#173b69;font-weight:800;font-size:12px;margin-top:5px}
.source-card{border-left:5px solid var(--accent);background:#f8fbff}

.normal-select{appearance:auto!important;-webkit-appearance:auto!important;-moz-appearance:auto!important;background-image:none!important;}
#task-edit-card .field select.normal-select{max-width:260px;width:100%;}
.task-quick-status select{appearance:auto!important;-webkit-appearance:auto!important;-moz-appearance:auto!important;}

.mini-event.multi-day{background:linear-gradient(90deg,#eef6ff,#f8fbff);border-style:solid;box-shadow:inset 0 0 0 1px rgba(10,74,142,.08)}
.mini-event.multi-day-start{border-top-right-radius:8px;border-bottom-right-radius:8px}
.mini-event.multi-day-middle{border-radius:8px;border-left-style:dashed;border-right-style:dashed;opacity:.95}
.mini-event.multi-day-end{border-top-left-radius:8px;border-bottom-left-radius:8px}
.segment-label{font-weight:800;color:#356a9d!important;text-transform:lowercase}
.month-grid .mini-event.multi-day .mini-event-head strong,.year-grid .mini-event.multi-day .mini-event-head strong{font-size:12px}

.calendar-drag-indicator{position:fixed;left:50%;bottom:18px;transform:translateX(-50%) translateY(18px);z-index:12000;min-width:360px;max-width:min(760px,calc(100vw - 32px));padding:14px 18px;border:1px solid rgba(10,74,142,.20);border-radius:18px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);box-shadow:0 20px 55px rgba(15,23,42,.22);opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease;color:#132b46}
.calendar-drag-indicator.show{opacity:1;transform:translateX(-50%) translateY(0)}
.drag-indicator-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#60728b;font-weight:900;margin-bottom:3px}
.drag-indicator-main{font-size:17px;font-weight:900;color:#0b2a4a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drag-indicator-sub{font-size:13px;color:#60728b;font-weight:700;margin-top:2px}
.calendar-resize-active .calendar-drag-indicator,.calendar-dragging-active .calendar-drag-indicator{display:block}
@media (max-width:640px){.calendar-drag-indicator{left:10px;right:10px;bottom:10px;transform:translateY(18px);min-width:0;max-width:none}.calendar-drag-indicator.show{transform:translateY(0)}.drag-indicator-main{font-size:14px;white-space:normal}}

.version-corner-badge{position:fixed;right:10px;bottom:8px;z-index:1200;max-width:360px;padding:5px 9px;border:1px solid rgba(203,217,234,.9);border-radius:999px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);box-shadow:0 6px 18px rgba(18,38,63,.08);color:#60718a;font-size:11px;font-weight:800;line-height:1;white-space:nowrap;pointer-events:none}
@media(max-width:760px){.version-corner-badge{display:none}}

.mini-event.multi-day-start[class*="calendar-color-"]{
  border-left:5px solid var(--event-color,#c9d5e2);
  border-right:1px solid #dbe7f4;
}
.mini-event.multi-day-middle[class*="calendar-color-"]{
  border-left:2px dashed var(--event-color,#c9d5e2);
  border-right:2px dashed var(--event-color,#c9d5e2);
}
.mini-event.multi-day-end[class*="calendar-color-"]{
  border-left:1px solid #dbe7f4;
  border-right:5px solid var(--event-color,#c9d5e2);
}
.mini-event.multi-day-end::after{
  content:'einde';
  position:absolute;
  right:7px;
  bottom:6px;
  font-size:10px;
  font-weight:900;
  color:var(--event-color,#c9d5e2);
  opacity:.9;
  pointer-events:none;
}
.mini-event.multi-day-end .mini-event-head{padding-right:10px}


/* === END style.css === */


/* === consolidated section === */


/* No visible version badge anywhere */
.version-corner-badge,
.navbar-version-pill,
.footer-version-pill,
.footer-version-text,
.footer-version-inline,
.bottom-version-pill,
.version-badge,
.version-badge-bottom,
.version-badge-floating,
.floating-version,
.version-floating,
.local-version,
.app-version,
.ticketflow-footer-fixed-version {
    display: none !important;
    visibility: hidden !important;
}

/* Footer: restore one clean blue footer bar with language/date aligned right */
.site-footer {
    flex-shrink: 0;
}

.site-footer .footer-bar {
    background: #245f9c !important;
}

.site-footer .footer-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    width: 100% !important;
}

.site-footer .footer-right {
    margin-left: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
}

.site-footer .footer-language-switch {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}

/* Remove white leftover / pseudo elements from earlier version attempts */
.site-footer::before,
.site-footer::after,
.footer-bar::before,
.footer-bar::after,
.footer-inner::before,
.footer-inner::after,
body::after {
    content: none !important;
    display: none !important;
}

/* Planning ribbon: same calm ribbon idea as Taken/Projecten, inside content */
.planning-ribbon-clean {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 18px 0 18px 0;
    padding: 12px 14px;
    background: #ffffff;
    border: 1px solid rgba(26, 73, 120, 0.12);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(15, 38, 64, 0.06);
}

.planning-ribbon-clean .ribbon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 22px;
    border-radius: 14px;
    border: 1px solid rgba(26, 73, 120, 0.22);
    background: #ffffff;
    color: #12304f;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(15, 38, 64, 0.03);
}

.planning-ribbon-clean .ribbon-btn.active,
.planning-ribbon-clean .ribbon-btn:hover {
    background: #eaf3fc;
    border-color: rgba(26, 73, 120, 0.35);
}

/* Avoid oversized top whitespace introduced by misplaced ribbons */
body > .planning-ribbon-clean {
    display: none !important;
}


/* === end consolidated section === */


/* === consolidated section === */

.planning-ribbon-clean {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 18px 0 18px 0;
    padding: 12px 14px;
    background: #ffffff;
    border: 1px solid rgba(26, 73, 120, 0.12);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(15, 38, 64, 0.06);
}

.planning-ribbon-clean .ribbon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 22px;
    border-radius: 14px;
    border: 1px solid rgba(26, 73, 120, 0.22);
    background: #ffffff;
    color: #12304f;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(15, 38, 64, 0.03);
}

.planning-ribbon-clean .ribbon-btn.active,
.planning-ribbon-clean .ribbon-btn:hover {
    background: #eaf3fc;
    border-color: rgba(26, 73, 120, 0.35);
}

.planning-panel {
    transition: opacity 0.12s ease-in-out;
}

body > .planning-ribbon-clean {
    display: none !important;
}


/* === end consolidated section === */


/* === consolidated section === */

.admin-card,
.card {
    overflow-wrap: anywhere;
}

nav a,
header a,
.navbar a,
.topbar a {
    white-space: nowrap;
}


/* === end consolidated section === */


/* === consolidated section === */


.i18n-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(160px, 1fr));
    gap: 14px;
    margin: 18px 0;
}
.i18n-stat {
    background: #fff;
    border: 1px solid rgba(26,73,120,.12);
    border-radius: 18px;
    padding: 16px;
    box-shadow: 0 8px 24px rgba(15,38,64,.05);
}
.i18n-stat strong {
    display: block;
    font-size: 28px;
    color: #12304f;
}
.i18n-stat span {
    color: #607086;
    font-weight: 700;
}
.i18n-stat.warning strong {
    color: #9a6500;
}
.i18n-card {
    margin-bottom: 18px;
}
.i18n-filter,
.i18n-add {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.i18n-filter input[type="text"],
.i18n-add input[type="text"] {
    min-width: 280px;
    flex: 1;
}
.i18n-filter select {
    min-width: 260px;
}
.check-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
}
.i18n-table-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.i18n-table-wrap {
    overflow: auto;
    max-height: 70vh;
    border: 1px solid rgba(26,73,120,.12);
    border-radius: 14px;
}
.i18n-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}
.i18n-table th,
.i18n-table td {
    padding: 10px;
    border-bottom: 1px solid rgba(26,73,120,.10);
    vertical-align: top;
}
.i18n-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f5f8fc;
    color: #12304f;
    text-align: left;
}
.i18n-table textarea {
    width: 100%;
    min-width: 240px;
    resize: vertical;
    border-radius: 10px;
    border: 1px solid rgba(26,73,120,.18);
    padding: 8px;
    font-family: inherit;
}
.key-cell code {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.row-warning {
    background: #fffaf0;
}
.badge {
    display: inline-flex;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 800;
}
.badge.ok {
    background: #e9f8ef;
    color: #1f7a3a;
}
.badge.warn {
    background: #fff2cf;
    color: #9a6500;
}
.actions-cell {
    min-width: 150px;
}
.actions-cell form {
    display: inline-block;
    margin: 0 4px 4px 0;
}
.btn.small {
    padding: 7px 10px;
    font-size: 13px;
}
.btn.danger {
    background: #b42318;
    color: #fff;
}
.muted-card {
    color: #607086;
}
@media (max-width: 900px) {
    .i18n-stats {
        grid-template-columns: 1fr;
    }
    .i18n-filter,
    .i18n-add {
        align-items: stretch;
    }
}


.i18n-table {
    table-layout: fixed;
}

.i18n-table th:nth-child(1),
.i18n-table td:nth-child(1) {
    width: 25%;
}

.i18n-table th:nth-child(2),
.i18n-table td:nth-child(2),
.i18n-table th:nth-child(3),
.i18n-table td:nth-child(3),
.i18n-table th:nth-child(4),
.i18n-table td:nth-child(4) {
    width: 19%;
}

.i18n-table .status-col,
.i18n-table td:nth-child(5) {
    width: 96px;
    min-width: 96px;
    text-align: center;
    white-space: nowrap;
}

.i18n-table .actions-col,
.i18n-table td:nth-child(6) {
    width: 142px;
    min-width: 142px;
    white-space: nowrap;
}

.i18n-table td {
    background-clip: padding-box;
}

.i18n-table textarea {
    min-width: 0;
    width: 100%;
    min-height: 48px;
    line-height: 1.35;
}

.key-cell code {
    display: inline-block;
    max-width: 100%;
    background: #eef5ff;
    border: 1px solid rgba(26,73,120,.12);
    border-radius: 8px;
    padding: 3px 8px;
    white-space: normal;
    word-break: break-word;
}

.actions-cell {
    display: flex;
    flex-direction: column;
    gap: 7px;
    align-items: stretch;
}

.actions-cell form {
    display: block;
    width: 100%;
    margin: 0;
}

.actions-cell .btn {
    width: 100%;
}

.badge.warn {
    max-width: 76px;
    justify-content: center;
    white-space: nowrap;
}

.i18n-table-wrap {
    max-height: 68vh;
}

.admin-grid .admin-card,
.grid .admin-card {
    min-height: 86px;
}

/* Make accidental bare links in admin page look less broken if any remain */
.page-head + a[href*="translations"],
.card + a[href*="translations"] {
    display: none;
}


.clean-admin-grid,
.admin-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(220px, 1fr));
    gap: 18px;
    align-items: stretch;
    margin-top: 18px;
}

.clean-admin-grid .admin-card,
.admin-grid .admin-card {
    display: block;
    min-height: 78px;
    padding: 22px 24px;
    background: #ffffff;
    border: 1px solid rgba(26,73,120,.12);
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(15,38,64,.05);
}

.clean-admin-grid .admin-card-title,
.admin-grid .admin-card-title {
    color: #0f4f8f;
    font-weight: 800;
    margin-bottom: 6px;
}

.clean-admin-grid .admin-card-desc,
.admin-grid .admin-card-desc {
    color: #607086;
}

/* Hide only broken translation link if it is not inside a grid */
body > a[href*="translations"],
main > a[href*="translations"]:not(.admin-card),
.content > a[href*="translations"]:not(.admin-card) {
    display: none !important;
}

@media (max-width: 1200px) {
    .clean-admin-grid,
    .admin-grid {
        grid-template-columns: repeat(3, minmax(220px, 1fr));
    }
}
@media (max-width: 900px) {
    .clean-admin-grid,
    .admin-grid {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }
}
@media (max-width: 620px) {
    .clean-admin-grid,
    .admin-grid {
        grid-template-columns: 1fr;
    }
}


   The translations tile now uses the same classes as every other tile:
   .card.admin-search-card
*/
#adminCardGrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(220px, 1fr));
    gap: 18px;
    align-items: stretch;
}

#adminCardGrid > .card.admin-search-card {
    min-height: 76px;
    height: auto;
}

/* Hide accidental old translation links if ever cached in template */
#adminCardGrid > a.admin-card[href*="translations"],
a.admin-card[href*="translations"] {
    display: none !important;
}


#adminCardGrid > a.card.admin-search-card[href*="admin_translations"],
#adminCardGrid > a.card.admin-search-card[data-search*="vertalingen"] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}


/* === end consolidated section === */


/* === consolidated section === */


/* Make the ticket action/sticky bar calmer and split left/right */
.ticket-sticky-clean,
.ticket-tabs,
.ticket-actions,
.ticket-detail-tabs,
.ticket-action-bar,
.sticky-ticket-actions,
.ticket-header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
}

/* Only the focus toggle should move right */
.ticket-focus-toggle {
    margin-left: auto !important;
    order: 99;
    white-space: nowrap;
}

/* Hide duplicate focus/show-more actions if they still exist from older templates */
.ticket-sticky-clean a[href*="focus_reactie"],
.ticket-sticky-clean a[href*="focus_bericht"],
.ticket-sticky-clean a[href*="reset_focus"],
.ticket-sticky-clean button[data-action*="reset-focus"],
.ticket-sticky-clean button[data-action*="focus-reply"],
.ticket-sticky-clean button[data-action*="focus-message"],
.ticket-sticky-clean .focus-reset,
.ticket-sticky-clean .focus-reply,
.ticket-sticky-clean .focus-message,
.ticket-sticky-clean .show-more-options,
.ticket-actions a[href*="focus_reactie"],
.ticket-actions a[href*="focus_bericht"],
.ticket-actions a[href*="reset_focus"],
.ticket-actions .focus-reset,
.ticket-actions .focus-reply,
.ticket-actions .focus-message,
.ticket-actions .show-more-options {
    display: none !important;
}

/* A focused/active content tab should not make the whole ticket stay in focus mode visually */
.ticket-sticky-clean .active:not(.ticket-focus-toggle),
.ticket-tabs .active:not(.ticket-focus-toggle),
.ticket-actions .active:not(.ticket-focus-toggle) {
    box-shadow: none;
}

/* On smaller screens keep the focus button readable */
@media (max-width: 900px) {
    .ticket-sticky-clean,
    .ticket-tabs,
    .ticket-actions,
    .ticket-detail-tabs,
    .ticket-action-bar,
    .sticky-ticket-actions,
    .ticket-header-actions {
        flex-wrap: wrap;
    }
    .ticket-focus-toggle {
        margin-left: 0 !important;
        width: 100%;
        justify-content: center;
    }
}


.ticket-sticky-clean,
.ticket-tabs,
.ticket-actions,
.ticket-detail-tabs,
.ticket-action-bar,
.sticky-ticket-actions,
.ticket-header-actions {
    width: 100%;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    background: #f8fbfe;
}

/* Do not force a split card layout around ticket header */
.ticket-sticky-clean {
    border-radius: 0 0 14px 14px;
}

/* Content tabs stay left in original row style */
.ticket-sticky-clean [data-ticket-tab],
.ticket-tabs [data-ticket-tab],
.ticket-actions [data-ticket-tab],
.ticket-detail-tabs [data-ticket-tab],
.ticket-action-bar [data-ticket-tab],
.sticky-ticket-actions [data-ticket-tab] {
    order: 1;
}

/* Focus is the separator toward the right-side actions */
.ticket-sticky-clean [data-focus-toggle],
.ticket-tabs [data-focus-toggle],
.ticket-actions [data-focus-toggle],
.ticket-detail-tabs [data-focus-toggle],
.ticket-action-bar [data-focus-toggle],
.sticky-ticket-actions [data-focus-toggle],
.ticket-focus-toggle {
    order: 50;
    margin-left: auto !important;
    white-space: nowrap;
}

/* Useful actions stay right of focus */
.ticket-sticky-clean a,
.ticket-sticky-clean button,
.ticket-tabs a,
.ticket-tabs button,
.ticket-actions a,
.ticket-actions button,
.ticket-detail-tabs a,
.ticket-detail-tabs button,
.ticket-action-bar a,
.ticket-action-bar button,
.sticky-ticket-actions a,
.sticky-ticket-actions button {
    white-space: nowrap;
}

/* Hide only duplicate/noisy options */
.ticket-sticky-clean a,
.ticket-sticky-clean button,
.ticket-tabs a,
.ticket-tabs button,
.ticket-actions a,
.ticket-actions button,
.ticket-detail-tabs a,
.ticket-detail-tabs button,
.ticket-action-bar a,
.ticket-action-bar button,
.sticky-ticket-actions a,
.sticky-ticket-actions button {
    text-decoration: none;
}

/* JS also hides by text; these catch class/href leftovers */
.ticket-sticky-clean a[href*="reset_focus"],
.ticket-sticky-clean a[href*="focus_reactie"],
.ticket-sticky-clean a[href*="focus_bericht"],
.ticket-sticky-clean a[href*="show_more"],
.ticket-actions a[href*="reset_focus"],
.ticket-actions a[href*="focus_reactie"],
.ticket-actions a[href*="focus_bericht"],
.ticket-actions a[href*="show_more"],
.ticket-detail-tabs a[href*="reset_focus"],
.ticket-detail-tabs a[href*="focus_reactie"],
.ticket-detail-tabs a[href*="focus_bericht"],
.ticket-detail-tabs a[href*="show_more"],
.ticket-sticky-clean .focus-reset,
.ticket-sticky-clean .focus-reply,
.ticket-sticky-clean .focus-message,
.ticket-sticky-clean .show-more-options {
    display: none !important;
}

.ticket-section-anchor {
    scroll-margin-top: 150px;
}

@media (max-width: 1000px) {
    .ticket-sticky-clean,
    .ticket-tabs,
    .ticket-actions,
    .ticket-detail-tabs,
    .ticket-action-bar,
    .sticky-ticket-actions,
    .ticket-header-actions {
        flex-wrap: wrap !important;
    }
    .ticket-sticky-clean [data-focus-toggle],
    .ticket-tabs [data-focus-toggle],
    .ticket-actions [data-focus-toggle],
    .ticket-detail-tabs [data-focus-toggle],
    .ticket-action-bar [data-focus-toggle],
    .sticky-ticket-actions [data-focus-toggle],
    .ticket-focus-toggle {
        margin-left: 0 !important;
    }
}


.ticket-detail-sticky-shell.ticket-sticky-clean {
    display: block !important;
    width: auto !important;
    background: rgba(255,255,255,.96) !important;
}

/* Top title row stays full width */
.ticket-detail-sticky-shell .ticket-title-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}

/* Only the action row is a flex toolbar */
.ticket-detail-sticky-shell .ticket-actions-row.ticket-sticky-clean,
.ticket-detail-sticky-shell .ticket-actions-row {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    background: rgba(247,249,252,.95) !important;
}

/* Keep old ordering: tabs left, spacer, focus/actions right */
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab] {
    order: 1;
}

.ticket-detail-sticky-shell .ticket-actions-row .nav-spacer {
    order: 20;
    flex: 1 1 auto !important;
    display: block !important;
}

.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-focus-toggle] {
    order: 30;
    margin-left: 0 !important;
    white-space: nowrap;
}

.ticket-detail-sticky-shell .ticket-actions-row .ticket-jump-button {
    order: 40;
}

/* Top show-more button should not return in stickybar */
#ticket-toggle-advanced-top {
    display: none !important;
}

/* Hide legacy duplicate focus buttons in case old markup is cached */
.ticket-detail-sticky-shell .ticket-actions-row a,
.ticket-detail-sticky-shell .ticket-actions-row button {
    white-space: nowrap;
}

/* Focus off means secondary/right column visible again */
body:not(.ticket-focus-active) .ticket-focus-secondary {
    display: block !important;
}

@media (max-width: 1100px) {
    .ticket-detail-sticky-shell .ticket-actions-row {
        flex-wrap: wrap !important;
    }
    .ticket-detail-sticky-shell .ticket-actions-row .nav-spacer {
        flex-basis: 100%;
        height: 0;
    }
}


.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="message"] { order: 1 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="reply"] { order: 2 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="history"] { order: 3 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="details"] { order: 4 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="task"] { order: 5 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="ai"] { order: 6 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="time"] { order: 7 !important; }

/* Small visual pause after the focus-safe communication group */
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="history"] {
    margin-right: 12px;
}

/* Keep focus button/actions at the right */
.ticket-detail-sticky-shell .ticket-actions-row .nav-spacer {
    order: 20 !important;
}
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-focus-toggle] {
    order: 30 !important;
}
.ticket-detail-sticky-shell .ticket-actions-row .ticket-jump-button {
    order: 40 !important;
}


body.ticket-focus-active .ticket-focus-temp-visible,
body.focus-layout-active .ticket-focus-temp-visible,
body.ticket-focus-active .ticket-focus-current,
body.focus-layout-active .ticket-focus-current,
.ticket-focus-active .ticket-focus-temp-visible,
.focus-layout-active .ticket-focus-temp-visible,
.ticket-focus-active .ticket-focus-current,
.focus-layout-active .ticket-focus-current {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* If the layout uses secondary blocks hidden in focus mode, selected one overrides it */
body.ticket-focus-active .ticket-focus-secondary.ticket-focus-temp-visible,
body.focus-layout-active .ticket-focus-secondary.ticket-focus-temp-visible,
body.ticket-focus-active .ticket-focus-secondary.ticket-focus-current,
body.focus-layout-active .ticket-focus-secondary.ticket-focus-current {
    display: block !important;
}


.ticket-detail-sticky-shell .ticket-actions-row .ticket-jump-button[data-target*="task"],
.ticket-detail-sticky-shell .ticket-actions-row .ticket-jump-button[data-target*="taak"],
.ticket-detail-sticky-shell .ticket-actions-row .ticket-jump-button[data-target*="ai"] {
    display: none !important;
}

/* Desktop: keep the old calm wide bar */
.ticket-detail-sticky-shell .ticket-actions-row {
    overflow: visible;
}

/* Tablet: wrap in a controlled way, not through the ticket title */
@media (max-width: 1100px) {
    .ticket-detail-sticky-shell .ticket-title-row {
        flex-wrap: wrap;
        gap: 8px;
    }

    .ticket-detail-sticky-shell .ticket-actions-row {
        flex-wrap: wrap !important;
        gap: 8px !important;
        padding-bottom: 8px;
    }

    .ticket-detail-sticky-shell .ticket-actions-row .nav-spacer {
        flex: 1 1 100% !important;
        height: 0;
        min-height: 0;
    }

    .ticket-detail-sticky-shell .ticket-actions-row [data-ticket-focus-toggle] {
        margin-left: 0 !important;
    }
}

/* Mobile: use a horizontal action rail so buttons stay readable */
@media (max-width: 720px) {
    .ticket-detail-sticky-shell {
        margin-left: 8px !important;
        margin-right: 8px !important;
        border-radius: 14px !important;
    }

    .ticket-detail-sticky-shell .ticket-title-row {
        align-items: flex-start !important;
    }

    .ticket-detail-sticky-shell .ticket-actions-row {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        gap: 8px !important;
        padding: 8px 10px !important;
        scrollbar-width: thin;
    }

    .ticket-detail-sticky-shell .ticket-actions-row .nav-spacer {
        display: none !important;
    }

    .ticket-detail-sticky-shell .ticket-actions-row a,
    .ticket-detail-sticky-shell .ticket-actions-row button {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
        min-height: 38px;
    }

    .ticket-detail-sticky-shell .ticket-actions-row [data-ticket-focus-toggle] {
        margin-left: 0 !important;
        order: 20 !important;
    }
}

/* Very small screens: slightly smaller text and padding */
@media (max-width: 430px) {
    .ticket-detail-sticky-shell .ticket-actions-row a,
    .ticket-detail-sticky-shell .ticket-actions-row button {
        font-size: 13px;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}


.ticket-detail-sticky-shell.ticket-sticky-clean {
    display: block !important;
    width: auto !important;
    background: rgba(255,255,255,.96) !important;
}

.ticket-detail-sticky-shell .ticket-title-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}

.ticket-detail-sticky-shell .ticket-actions-row {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    background: rgba(247,249,252,.95) !important;
}

.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="message"] { order: 1 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="reply"] { order: 2 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="history"] { order: 3 !important; margin-right: 12px; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="details"] { order: 4 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="task"] { order: 5 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="ai"] { order: 6 !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="time"] { order: 7 !important; }
.ticket-detail-sticky-shell .ticket-actions-row .nav-spacer { order: 20 !important; flex: 1 1 auto !important; }
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-focus-toggle] { order: 30 !important; white-space: nowrap; }

.ticket-detail-sticky-shell .ticket-actions-row .ticket-jump-button[data-target="ticket-task-card"],
.ticket-detail-sticky-shell .ticket-actions-row .ticket-jump-button[data-target="ticket-ai-card"] {
    display: none !important;
}

/* Focus-safe communication blocks must be visible while focus mode stays on */
body.ticket-focus-active .ticket-focus-temp-visible,
body.focus-layout-active .ticket-focus-temp-visible,
body.ticket-focus-active .ticket-focus-current,
body.focus-layout-active .ticket-focus-current,
.ticket-focus-active .ticket-focus-temp-visible,
.focus-layout-active .ticket-focus-temp-visible,
.ticket-focus-active .ticket-focus-current,
.focus-layout-active .ticket-focus-current {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Responsive ticketbar */
@media (max-width: 1100px) {
    .ticket-detail-sticky-shell .ticket-title-row {
        flex-wrap: wrap;
        gap: 8px;
    }
    .ticket-detail-sticky-shell .ticket-actions-row {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }
    .ticket-detail-sticky-shell .ticket-actions-row .nav-spacer {
        flex-basis: 100%;
        height: 0;
        min-height: 0;
    }
}
@media (max-width: 720px) {
    .ticket-detail-sticky-shell {
        margin-left: 8px !important;
        margin-right: 8px !important;
        border-radius: 14px !important;
    }
    .ticket-detail-sticky-shell .ticket-actions-row {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        padding: 8px 10px !important;
        scrollbar-width: thin;
    }
    .ticket-detail-sticky-shell .ticket-actions-row .nav-spacer {
        display: none !important;
    }
    .ticket-detail-sticky-shell .ticket-actions-row a,
    .ticket-detail-sticky-shell .ticket-actions-row button {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
        min-height: 38px;
    }
}


/* === end consolidated section === */


/* === consolidated section === */

.planning-card-quiet {
    padding: 10px 12px !important;
    line-height: 1.28 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

.planning-card-quiet strong,
.planning-card-quiet b {
    font-weight: 700 !important;
}

.planning-card-quiet .planning-source-muted,
.planning-card-quiet small,
.planning-card-quiet .muted {
    color: #7a8798 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

/* Make repeated status/meta labels less dominant */
.planning-card-quiet .badge,
.planning-card-quiet .pill,
.planning-card-quiet [class*="badge"],
.planning-card-quiet [class*="pill"] {
    font-size: 11px !important;
    padding: 3px 7px !important;
    opacity: 0.85;
}

/* Slightly tighter edit button */
.planning-card-quiet button,
.planning-card-quiet a.btn,
.planning-card-quiet .btn {
    padding: 5px 10px !important;
    min-height: 28px !important;
}

/* Prevent over-wrapping where possible */
.planning-card-quiet {
    overflow-wrap: normal !important;
    word-break: normal !important;
}


/* === end consolidated section === */


/* === consolidated section === */


/* Message cards should not create a huge empty white area for short mails */
.ticket-message-card,
.message-card,
.ticket-message-panel,
.message-panel,
.mail-message-card,
.mail-preview-card,
.email-preview-card,
#ticket-latest-message-card,
#ticket-message-card,
#message,
#messages {
    min-height: unset !important;
}

/* Common body areas */
.ticket-message-body,
.message-body,
.mail-message-body,
.mail-preview-body,
.email-preview-body,
.message-content,
.ticket-message-content,
.ticket-html-preview,
.ticket-clean-text,
.mail-html-preview,
.mail-clean-text,
#ticket-message-body,
#ticket-latest-message-body {
    min-height: 0 !important;
    height: auto !important;
    max-height: 52vh;
    overflow: auto;
    padding-bottom: 18px !important;
}

/* The visible mail box itself should size to content */
.message-display,
.berichtweergave,
.ticket-message-display,
.ticket-message-view,
.ticket-message-frame,
.mail-display,
.mail-viewer {
    min-height: 0 !important;
    height: auto !important;
    max-height: 58vh;
    overflow: auto;
}

/* Keep short text compact */
.ticket-message-body p,
.message-body p,
.mail-message-body p,
.ticket-message-content p,
.message-content p {
    margin-top: 0.55rem;
    margin-bottom: 0.75rem;
}

/* Make toolbar compact and sticky inside longer messages */
.ticket-message-toolbar,
.message-toolbar,
.mail-message-toolbar,
.message-actions,
.ticket-message-actions,
.mail-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
    padding: 10px 12px !important;
    min-height: 42px;
    background: rgba(248, 251, 254, 0.96);
    border-bottom: 1px solid rgba(26, 73, 120, 0.10);
}

/* Dynamic mode class added by JS */
.ticket-message-dynamic {
    min-height: 0 !important;
}

.ticket-message-dynamic .ticket-message-body,
.ticket-message-dynamic .message-body,
.ticket-message-dynamic .message-content,
.ticket-message-dynamic .ticket-message-content,
.ticket-message-dynamic .message-display,
.ticket-message-dynamic .mail-display {
    min-height: 0 !important;
    height: auto !important;
}

/* Short messages get a comfortable but compact box */
.ticket-message-dynamic.ticket-message-short,
.ticket-message-dynamic.ticket-message-short .ticket-message-body,
.ticket-message-dynamic.ticket-message-short .message-body,
.ticket-message-dynamic.ticket-message-short .message-content,
.ticket-message-dynamic.ticket-message-short .ticket-message-content {
    max-height: none !important;
}

/* Longer messages keep the UI usable */
.ticket-message-dynamic.ticket-message-long .ticket-message-body,
.ticket-message-dynamic.ticket-message-long .message-body,
.ticket-message-dynamic.ticket-message-long .message-content,
.ticket-message-dynamic.ticket-message-long .ticket-message-content {
    max-height: 62vh !important;
    overflow: auto !important;
}

/* Expanded mode via button */
.ticket-message-expanded,
.ticket-message-expanded .ticket-message-body,
.ticket-message-expanded .message-body,
.ticket-message-expanded .message-content,
.ticket-message-expanded .ticket-message-content,
.ticket-message-expanded .message-display,
.ticket-message-expanded .mail-display {
    max-height: none !important;
}

/* Avoid giant empty iframe-like viewers when content is plain text */
.ticket-message-dynamic iframe,
.message-display iframe,
.mail-display iframe {
    min-height: 220px;
    max-height: 60vh;
}

/* In focus mode, keep dynamic sizing as well */
body.ticket-focus-active .ticket-message-dynamic,
body.focus-layout-active .ticket-message-dynamic {
    min-height: 0 !important;
}


/* === end consolidated section === */


/* === consolidated section === */

.ticket-company-filter select { min-width: 180px; }
@media (min-width: 900px) { .ticket-company-filter { min-width: 220px; } }


/* === end consolidated section === */


/* === consolidated section === */


.portal-filter-grid {
    display: grid;
    grid-template-columns: minmax(240px, 1.5fr) minmax(180px, .7fr) auto auto;
    gap: 12px;
    align-items: end;
}
.portal-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.portal-ticket-rows {
    display: grid;
    gap: 10px;
}
.portal-ticket-row {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) minmax(150px, .5fr) minmax(220px, 1fr);
    gap: 14px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid rgba(26,73,120,.12);
    border-radius: 14px;
    background: #fff;
    text-decoration: none;
    color: inherit;
}
.portal-ticket-row:hover {
    border-color: rgba(26,73,120,.28);
    box-shadow: 0 8px 24px rgba(15,38,64,.06);
}
.portal-ticket-main {
    display: grid;
    gap: 4px;
}
.portal-ticket-main strong {
    color: #0f4f8f;
}
.portal-ticket-main small,
.portal-ticket-status small,
.portal-ticket-last {
    color: #607086;
}
.status-pill,
.portal-status-large {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    padding: 6px 12px;
    font-weight: 800;
    background: #eef5ff;
    color: #0f4f8f;
}
.portal-status-large {
    font-size: 18px;
}
.portal-detail-grid {
    display: grid;
    grid-template-columns: minmax(220px, .5fr) minmax(300px, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}
.portal-dl {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 8px 12px;
}
.portal-dl dt {
    font-weight: 800;
    color: #607086;
}
.portal-messages,
.portal-history {
    display: grid;
    gap: 12px;
}
.portal-message,
.portal-history-row {
    border: 1px solid rgba(26,73,120,.10);
    border-radius: 14px;
    padding: 14px;
    background: #fff;
}
.portal-message-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #607086;
    margin-bottom: 10px;
}
.portal-message-body {
    white-space: pre-wrap;
    line-height: 1.45;
}
@media (max-width: 900px) {
    .portal-filter-grid,
    .portal-ticket-row,
    .portal-detail-grid {
        grid-template-columns: 1fr;
    }
}


/* === end consolidated section === */


/* === consolidated section === */


.approval-wrap {
    display: grid;
    min-height: 55vh;
    place-items: center;
}
.approval-card {
    max-width: 620px;
    text-align: center;
}
.approval-actions {
    margin-top: 20px;
}
.approval-filter {
    display: flex;
    align-items: end;
    gap: 12px;
    flex-wrap: wrap;
}
.approval-list {
    display: grid;
    gap: 16px;
    margin-top: 16px;
}
.approval-user-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}
.approval-grid {
    display: grid;
    grid-template-columns: minmax(180px, .7fr) minmax(180px, .9fr) auto auto;
    gap: 12px;
    align-items: end;
}
.approval-note {
    grid-column: 1 / -1;
}
.approval-actions-row {
    grid-column: 1 / -1;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    flex-wrap: wrap;
}
.btn.danger {
    background: #b42318;
    color: #fff;
}
.status-pill {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    padding: 6px 12px;
    font-weight: 800;
    background: #eef5ff;
    color: #0f4f8f;
}
@media (max-width: 900px) {
    .approval-grid {
        grid-template-columns: 1fr;
    }
    .approval-user-head {
        flex-direction: column;
    }
    .approval-actions-row {
        justify-content: stretch;
    }
    .approval-actions-row .btn {
        width: 100%;
    }
}


/* === end consolidated section === */


/* === consolidated section === */


.mail-template-form {
    display: grid;
    gap: 16px;
}
.mail-template-card textarea {
    width: 100%;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    line-height: 1.4;
}
.placeholder-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.placeholder-row code {
    background: #eef5ff;
    color: #0f4f8f;
    border-radius: 999px;
    padding: 6px 10px;
    font-weight: 800;
}
.mail-template-card details {
    margin-top: 12px;
}
.mail-template-card pre {
    white-space: pre-wrap;
    background: #f7f9fc;
    border: 1px solid rgba(26,73,120,.10);
    border-radius: 12px;
    padding: 12px;
}
.sticky-save-bar {
    position: sticky;
    bottom: 12px;
    z-index: 20;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(26,73,120,.12);
    border-radius: 16px;
    padding: 12px;
    box-shadow: 0 10px 30px rgba(15,38,64,.08);
}
.page-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
@media (max-width: 720px) {
    .sticky-save-bar {
        flex-direction: column;
    }
    .sticky-save-bar .btn {
        width: 100%;
    }
}


/* === end consolidated section === */


/* === consolidated section === */

.ticket-show-closed,
.portal-show-closed {
    align-self: end;
    min-height: 38px;
}
@media (max-width: 900px) {
    .ticket-show-closed,
    .portal-show-closed {
        align-self: start;
    }
}


/* === end consolidated section === */


/* === consolidated section === */


.login-portal-actions,
.portal-login-extra-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
    align-items: center;
}
.login-portal-actions .btn,
.portal-login-extra-actions .btn {
    text-decoration: none;
}
.login-approval-note,
.portal-register-approval-note {
    margin-top: 10px;
    color: #607086;
    font-size: 0.92rem;
}
@media (max-width: 720px) {
    .login-portal-actions,
    .portal-login-extra-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .login-portal-actions .btn,
    .portal-login-extra-actions .btn {
        width: 100%;
        text-align: center;
    }
}


/* === end consolidated section === */


/* === consolidated section === */


.mytickets-admin-clarity {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin-bottom: 16px;
    border-left: 5px solid #1f5f9f;
}
.mytickets-admin-clarity h2 {
    margin: 0 0 6px;
}
.mytickets-admin-clarity p {
    margin: 0;
    color: #607086;
}
.mytickets-admin-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.portal-filter-compact {
    grid-template-columns: minmax(240px, 1fr) minmax(180px, .5fr) auto auto auto;
}
.portal-filter-compact .btn {
    min-width: 160px;
}
@media (max-width: 1000px) {
    .mytickets-admin-clarity {
        flex-direction: column;
        align-items: stretch;
    }
    .mytickets-admin-actions {
        justify-content: stretch;
    }
    .mytickets-admin-actions .btn {
        flex: 1 1 180px;
        text-align: center;
    }
    .portal-filter-compact {
        grid-template-columns: 1fr;
    }
}


/* === end consolidated section === */


/* === consolidated section === */


.auth-portal-wrap {
    display: grid;
    place-items: center;
    min-height: 62vh;
    padding: 24px;
}
.auth-portal-card {
    width: min(520px, 100%);
}
.portal-register-form {
    display: grid;
    gap: 12px;
    margin-top: 16px;
}
.portal-login-extra-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}
.portal-register-approval-note {
    color: #607086;
}
@media (max-width: 720px) {
    .portal-login-extra-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .portal-login-extra-actions .btn {
        width: 100%;
        text-align: center;
    }
}


/* === end consolidated section === */


/* === consolidated section === */


.mytickets-admin-clarity {
    border-left: 5px solid #1f5f9f;
}
.mytickets-admin-actions .btn {
    white-space: nowrap;
}


/* === end consolidated section === */


/* === consolidated section === */


.login-clean-page {
    min-height: calc(100vh - 150px);
    display: grid;
    place-items: center;
    padding: 52px 18px 76px;
}

.login-clean-card {
    width: min(440px, 100%);
    background: #fff;
    border: 1px solid rgba(21, 48, 77, 0.12);
    border-radius: 18px;
    box-shadow: 0 22px 55px rgba(21, 48, 77, 0.12);
    padding: 28px;
}

.login-clean-logo {
    display: flex;
    justify-content: center;
    margin: -76px 0 14px;
}

.login-clean-logo img {
    width: 128px;
    height: auto;
    display: block;
}

.login-clean-header {
    text-align: center;
    margin-bottom: 20px;
}

.login-clean-header h1 {
    margin: 0;
    font-size: 1.65rem;
    line-height: 1.2;
    color: #0b2239;
}

.login-clean-header p {
    margin: 6px 0 0;
    color: #6b7788;
}

.login-clean-form {
    display: grid;
    gap: 14px;
}

.login-clean-submit {
    width: 100%;
    margin-top: 4px;
}

.login-clean-secondary {
    margin-top: 12px;
    text-align: center;
}

.login-clean-secondary a {
    display: inline-flex;
    padding: 7px 12px;
    border: 1px solid rgba(21, 48, 77, 0.14);
    border-radius: 999px;
    color: #24384f;
    text-decoration: none;
    font-size: .92rem;
    background: #f8fafc;
}

.login-clean-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 22px 0 14px;
    color: #6b7788;
    font-size: .92rem;
}

.login-clean-divider::before,
.login-clean-divider::after {
    content: "";
    height: 1px;
    flex: 1;
    background: rgba(21, 48, 77, 0.12);
}

.login-clean-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.login-clean-actions .btn {
    text-align: center;
    justify-content: center;
    text-decoration: none;
}

.login-clean-info {
    margin-top: 16px;
    padding: 12px 14px;
    border-radius: 14px;
    background: #f7fafc;
    border: 1px solid rgba(21, 48, 77, 0.08);
    color: #5f6f82;
    font-size: .91rem;
    line-height: 1.45;
}

.login-clean-info p {
    margin: 0;
}

.login-clean-info p + p {
    margin-top: 6px;
}

.login-clean-info .muted {
    color: #7a8796;
}

@media (max-width: 700px) {
    .login-clean-page {
        min-height: calc(100vh - 120px);
        padding: 42px 14px 64px;
    }

    .login-clean-card {
        padding: 22px;
        border-radius: 16px;
    }

    .login-clean-logo {
        margin-top: -62px;
    }

    .login-clean-logo img {
        width: 104px;
    }

    .login-clean-header h1 {
        font-size: 1.4rem;
    }
}


/* === end consolidated section === */


/* v1004 cleanbase: extracted template style blocks */

/* extracted from app/templates/tickets.html */
.ticket-sort-link{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;font-weight:800}
.ticket-sort-link:hover{color:#0b5cab;text-decoration:none}
.ticket-sort-indicator{font-size:11px;opacity:.75}
.ticket-latest-action{min-width:260px;max-width:360px}
.ticket-latest-action .kind{display:inline-flex;border:1px solid #d9e5f3;background:#f5f9ff;border-radius:999px;padding:3px 8px;font-weight:800;color:#25496d;font-size:11px;margin-bottom:2px}
.ticket-latest-action .actor{font-weight:800;color:#0b2748;font-size:13px;line-height:1.2}
.ticket-latest-action .text{font-size:13px;line-height:1.25;color:#173b63;white-space:normal;max-width:340px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ticket-latest-action .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:3px}
.ticket-latest-action .source{font-size:11px;color:#446382;font-weight:700}


/* extracted from app/templates/ticket_detail.html */
.attachment-pick-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.attachment-pick{padding:8px 10px;border:1px solid #d7e0ea;border-radius:12px;background:#fff}.ticket-focus-active .ticket-focus-secondary{display:none}.ticket-focus-active .two-col{display:block}.ticket-focus-active .two-col > div:first-child{width:100%;max-width:100%}.ticket-focus-active .ticket-focus-primary,.ticket-focus-active .card,.ticket-focus-active .mail-readbox,.ticket-focus-active #ticket-reply-editor{max-width:100%}.section-toggle{margin-left:auto}.btn.is-disabled,.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.toolbar .btn.is-active{background:#eef5fb;border-color:#9fc0df}
.ticket-detail-sticky-shell{position:sticky!important;top:var(--sticky-top-main,70px)!important;z-index:80;margin:0 0 16px 0;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);box-shadow:var(--shadow);overflow:hidden}
.ticket-detail-sticky-shell .ticket-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.98)}
.ticket-detail-sticky-shell .module-title{display:flex;align-items:center;gap:12px;min-width:240px}.ticket-detail-sticky-shell .module-copy strong{display:block;font-size:17px}.ticket-detail-sticky-shell .module-copy small{display:block;color:var(--muted);margin-top:2px}.ticket-detail-sticky-shell .module-tag{display:block;width:10px;height:42px;border-radius:999px;background:var(--module-accent,#e0a12b)}
.ticket-detail-sticky-shell .ticket-actions-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:rgba(247,249,252,.95)}
.ticket-detail-sticky-shell .ticket-actions-row a,.ticket-detail-sticky-shell .ticket-actions-row button{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--text);font-weight:700;font-size:13px;cursor:pointer;text-decoration:none;font-family:inherit}
.ticket-detail-sticky-shell .ticket-actions-row a:hover,.ticket-detail-sticky-shell .ticket-actions-row button:hover,.ticket-detail-sticky-shell .ticket-actions-row a.active,.ticket-detail-sticky-shell .ticket-actions-row button.active,.ticket-detail-sticky-shell .ticket-actions-row button.is-active{background:#fff;border-color:var(--border-strong);color:var(--blue)}
.ticket-detail-sticky-shell .nav-spacer{flex:1 1 auto}.ticket-detail-sticky-shell .badge{white-space:nowrap}
@media (max-width:1100px){.ticket-detail-sticky-shell{position:sticky!important;top:0!important}.ticket-detail-sticky-shell .ticket-title-row{align-items:flex-start}.ticket-detail-sticky-shell .ticket-actions-row{max-height:42vh;overflow:auto}}

/* Bijlagen standaard echt verbergen, ook als .attachment-list elders display:grid/flex krijgt. */
.attachment-list[hidden],
.ticket-attachment-list[hidden]{display:none!important}
.ai-attachment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.ai-attachment-choice{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:12px;background:#fff}.ai-attachment-choice small{display:block;color:var(--muted);margin-top:2px}.ai-attachment-warning{margin-top:8px;color:#8a5a00;font-size:12px}


/* extracted from app/templates/ticket_detail.html */
html, body { margin: 0; padding: 0; background: #ffffff; color: #111827; font-family: Arial, Helvetica, sans-serif; }
  body { padding: 16px; line-height: 1.45; word-wrap: break-word; overflow-wrap: anywhere; }
  img { max-width: 100% !important; height: auto !important; }
  table { max-width: 100% !important; width: auto !important; border-collapse: collapse; }
  td, th { word-break: break-word; }
  * { box-sizing: border-box; }
  a { color: #255f9f; }


/* extracted from app/templates/projects.html */
.ribbon-shell{display:grid;gap:14px}.ribbon-card{background:#fff;border:1px solid #d8e4f2;border-radius:18px;box-shadow:0 10px 24px rgba(18,38,63,.06);overflow:hidden}.ribbon-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid #edf2f8;background:linear-gradient(180deg,#fff,#fbfdff)}.ribbon-tabs{display:flex;gap:8px;flex-wrap:wrap}.ribbon-tab{border:1px solid #cbd9ea;background:#fff;color:#173b63;border-radius:14px;padding:10px 14px;font-weight:800;cursor:pointer;text-decoration:none}.ribbon-tab.active{background:#eaf3ff;border-color:#9ebce2;box-shadow:inset 0 0 0 1px #d6e7fb}.ribbon-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ribbon-panel{padding:18px}.ribbon-panel[hidden]{display:none}.compact-form .field{min-width:210px}.project-table-wrap{overflow:auto}.extra-col{display:none}.show-extra .extra-col{display:table-cell}.row-extra{display:none;background:#fbfdff}.show-extra .row-extra{display:table-row}.last-action-pill{display:inline-flex;gap:6px;align-items:center;border:1px solid #d9e5f3;background:#f5f9ff;border-radius:999px;padding:5px 9px;font-weight:800;color:#25496d;font-size:12px}.last-action-cell strong{display:block;margin-top:3px;color:#0b2748}.last-action-cell .muted{display:block;margin-top:2px}.last-action-text{max-width:360px;white-space:normal;line-height:1.25}.last-action-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px}.last-action-source{font-size:12px;color:#446382;font-weight:700}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}.quick-card{border:1px solid #e0e9f5;border-radius:14px;padding:10px 12px;background:#fff}.quick-card strong{display:block}.toggle-mini{font-size:12px;color:#657891;margin-top:4px}


/* extracted from app/templates/tasks.html */
.ribbon-shell{display:grid;gap:14px}.ribbon-card{background:#fff;border:1px solid #d8e4f2;border-radius:18px;box-shadow:0 10px 24px rgba(18,38,63,.06);overflow:hidden}.ribbon-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid #edf2f8;background:linear-gradient(180deg,#fff,#fbfdff)}.ribbon-tabs{display:flex;gap:8px;flex-wrap:wrap}.ribbon-tab{border:1px solid #cbd9ea;background:#fff;color:#173b63;border-radius:14px;padding:10px 14px;font-weight:800;cursor:pointer;text-decoration:none}.ribbon-tab.active{background:#eaf3ff;border-color:#9ebce2;box-shadow:inset 0 0 0 1px #d6e7fb}.ribbon-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ribbon-panel{padding:18px}.ribbon-panel[hidden]{display:none}.compact-form .field{min-width:210px}.task-table-wrap{overflow:auto}.extra-col{display:none}.show-extra .extra-col{display:table-cell}.row-extra{display:none;background:#fbfdff}.show-extra .row-extra{display:table-row}.last-action-pill{display:inline-flex;gap:6px;align-items:center;border:1px solid #d9e5f3;background:#f5f9ff;border-radius:999px;padding:5px 9px;font-weight:800;color:#25496d;font-size:12px}.last-action-cell strong{display:block;margin-top:3px;color:#0b2748}.last-action-cell .muted{display:block;margin-top:2px}.last-action-text{max-width:360px;white-space:normal;line-height:1.25}.last-action-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px}.last-action-source{font-size:12px;color:#446382;font-weight:700}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}.quick-card{border:1px solid #e0e9f5;border-radius:14px;padding:10px 12px;background:#fff}.quick-card strong{display:block}.source-card{margin-bottom:14px}.normal-select{appearance:auto;-webkit-appearance:auto;background:#fff}


/* extracted from app/templates/admin_rules.html */
.routing-shell{display:grid;gap:16px}.routing-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.routing-hero .title{font-size:30px;font-weight:900;color:#17324d}.routing-hero .sub{color:#60718a;margin-top:4px}.routing-ribbon{position:sticky;top:72px;z-index:25;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid #dbe7f4;border-radius:18px;box-shadow:0 10px 24px rgba(18,38,63,.06);padding:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.routing-tab{border:1px solid transparent;background:transparent;color:#17324d;font-weight:800;padding:10px 14px;border-radius:13px;cursor:pointer}.routing-tab.active{background:#eaf3ff;border-color:#c8dcf5;color:#0f4e93}.routing-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.routing-panel{display:none}.routing-panel.active{display:block}.matrix-card{background:#fff;border:1px solid #dbe7f4;border-radius:20px;box-shadow:0 10px 26px rgba(18,38,63,.06);overflow:hidden}.matrix-head{padding:16px 18px;border-bottom:1px solid #edf2f8;display:flex;justify-content:space-between;gap:14px;align-items:center}.matrix-head h3{margin:0}.matrix-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.matrix-tools input,.matrix-tools select{height:40px}.routing-matrix-wrap{overflow:auto}.routing-matrix{width:100%;border-collapse:separate;border-spacing:0;min-width:1480px}.routing-matrix th{position:sticky;top:0;background:#f6f9fd;color:#60718a;text-transform:uppercase;letter-spacing:.04em;font-size:12px;text-align:left;border-bottom:1px solid #dbe7f4;padding:10px;z-index:1}.routing-matrix td{border-bottom:1px solid #edf2f8;padding:8px 10px;vertical-align:top}.routing-matrix tr:hover td{background:#fbfdff}.routing-matrix input,.routing-matrix select{width:100%;min-width:110px;height:38px;border:1px solid #cbd9ea;border-radius:10px;padding:8px 10px;background:#fff;color:#17324d}.routing-matrix input[type=checkbox]{width:auto;min-width:0;height:auto}.prio-cell{width:76px}.name-cell{width:190px}.small-cell{width:118px}.value-cell{width:160px}.action-cell{width:240px}.rule-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#eff6ff;border:1px solid #d5e6fb;color:#174e8b;padding:4px 9px;font-size:12px;font-weight:800}.muted-mini{font-size:12px;color:#70829a}.matrix-savebar{display:flex;gap:8px;align-items:center;justify-content:flex-end}.matrix-row-form{display:contents}.matrix-empty{padding:22px;color:#687c95}.hint-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.hint-card{border:1px solid #dbe7f4;background:#fff;border-radius:16px;padding:14px}.hint-card strong{display:block;margin-bottom:6px}.example-table{width:100%;border-collapse:collapse}.example-table th,.example-table td{border-bottom:1px solid #edf2f8;padding:9px;text-align:left}.matrix-badge{font-size:12px;padding:4px 8px;border-radius:999px;background:#f2f6fb;color:#526b87}.danger-link{color:#b42318;border-color:#f1c6c1!important;background:#fff7f6!important}
@media(max-width:900px){.routing-actions{margin-left:0}.routing-ribbon{top:58px}.matrix-head{align-items:flex-start;flex-direction:column}.matrix-tools{width:100%}.matrix-tools input{flex:1}}


/* extracted from app/templates/project_detail.html */
.project-page{display:flex;flex-direction:column;gap:16px}
.project-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.summary-card{padding:14px 16px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fff}
.summary-card .label{font-size:.82rem;color:#6b7280;margin-bottom:6px}
.summary-card .value{font-size:1.2rem;font-weight:700}
.project-sticky-bar{position:sticky;top:72px;z-index:80;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid rgba(0,0,0,.08);border-radius:16px;background:rgba(255,255,255,.98);backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,.10)}
.project-sticky-bar.is-fixed-fallback{position:fixed;top:72px;left:24px;right:24px;max-width:calc(100vw - 48px)}
.project-sticky-spacer{display:none;height:74px}
.project-sticky-spacer.is-active{display:block}
.project-sticky-bar .group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.project-sticky-bar .chip-link.is-active,.project-sticky-bar .btn.is-active{background:#fff;border-color:var(--border-strong,#b7c9df);color:var(--blue,#0a4a8e)}
.project-anchor{scroll-margin-top:110px}
.project-focus-active .project-page{display:block}.project-focus-active .project-focus-target.is-project-focused{max-width:100%}.project-focus-active .project-focus-target.project-focus-secondary{opacity:.18;max-height:84px;overflow:hidden;pointer-events:none;filter:grayscale(.15)}.project-focus-active .project-focus-target.is-project-focused{opacity:1;max-height:none;overflow:visible;pointer-events:auto;filter:none;box-shadow:0 0 0 2px rgba(63,127,191,.18),0 14px 30px rgba(18,38,63,.10)}
.project-overview-grid{display:grid;grid-template-columns:1.2fr .9fr;gap:16px}
.project-overview-stack{display:flex;flex-direction:column;gap:16px}
.project-mini-list{display:flex;flex-direction:column;gap:10px}
.project-mini-item{padding:12px 14px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:#fafafa}
.project-mini-item .topline{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.project-mini-item .titleline{font-weight:700}
.project-mini-item .meta{font-size:.83rem;color:#6b7280;margin-top:4px}
.project-mini-item .text{margin-top:8px;white-space:pre-wrap}
.project-actions-panel{display:none;margin-top:12px;padding-top:12px;border-top:1px dashed rgba(0,0,0,.1)}
.project-actions-panel.is-open{display:block}
.project-section-actions{display:flex;flex-wrap:wrap;gap:8px}
.project-twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width: 980px){.project-overview-grid,.project-twocol{grid-template-columns:1fr}}


/* extracted from app/templates/task_detail.html */
.task-detail-sticky-shell{position:sticky!important;top:var(--sticky-top-main,70px)!important;z-index:80;margin:0 0 16px 0;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);box-shadow:var(--shadow);overflow:hidden}
.task-detail-sticky-shell .task-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.98)}
.task-detail-sticky-shell .module-title{display:flex;align-items:center;gap:12px;min-width:240px}.task-detail-sticky-shell .module-copy strong{display:block;font-size:17px}.task-detail-sticky-shell .module-copy small{display:block;color:var(--muted);margin-top:2px}.task-detail-sticky-shell .module-tag{display:block;width:10px;height:42px;border-radius:999px;background:var(--module-accent,#3f7fbf)}
.task-detail-sticky-shell .task-actions-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:rgba(247,249,252,.95)}
.task-detail-sticky-shell .task-actions-row a,.task-detail-sticky-shell .task-actions-row button{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--text);font-weight:700;font-size:13px;cursor:pointer;text-decoration:none;font-family:inherit}
.task-detail-sticky-shell .task-actions-row a:hover,.task-detail-sticky-shell .task-actions-row button:hover,.task-detail-sticky-shell .task-actions-row a.active,.task-detail-sticky-shell .task-actions-row button.active,.task-detail-sticky-shell .task-actions-row button.is-active{background:#fff;border-color:var(--border-strong);color:var(--blue)}
.task-detail-sticky-shell .nav-spacer{flex:1 1 auto}.task-detail-sticky-shell .badge{white-space:nowrap}.task-focus-active .two-col{display:block}.task-focus-active .focus-target.is-focused{max-width:100%}
.task-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}.task-summary-item{padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:#f8fbff}.task-summary-item span{display:block;color:var(--muted);font-size:12px}.task-summary-item strong{display:block;margin-top:2px}.task-description-box{margin-top:12px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid var(--border);white-space:pre-wrap}
.task-summary-form{margin:0}.task-summary-form select{width:100%;min-height:36px;border:1px solid var(--border);border-radius:10px;background:#fff;padding:7px 10px;font-weight:800;color:var(--text)}
@media (max-width:1100px){.task-detail-sticky-shell{position:sticky!important;top:0!important}.task-detail-sticky-shell .task-title-row{align-items:flex-start}.task-detail-sticky-shell .task-actions-row{max-height:42vh;overflow:auto}}

/* v1005 grouping + dropdown cleanup */
.user-menu{position:relative;display:block;}
.user-menu-summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;align-items:flex-end;gap:0;min-width:150px;}
.user-menu-summary::-webkit-details-marker{display:none;}
.user-menu-summary::after{content:'▾';font-size:10px;margin-top:2px;opacity:.85;}
.user-menu[open] .user-menu-summary::after{content:'▴';}
.user-menu-panel{position:absolute;right:0;top:calc(100% + 12px);z-index:1000;min-width:260px;background:#fff;border:1px solid #d7e5f3;border-radius:18px;box-shadow:0 18px 45px rgba(20,62,105,.18);padding:12px;display:flex;flex-direction:column;gap:6px;}
.user-menu-panel::before{content:'';position:absolute;right:24px;top:-10px;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #fff;}
.user-menu-panel a,.user-menu-panel button{display:block;width:100%;border:0;background:transparent;color:#062b4f;text-align:left;text-decoration:none;font-weight:800;padding:12px 14px;border-radius:12px;font:inherit;cursor:pointer;}
.user-menu-panel a:hover,.user-menu-panel button:hover{background:#eef6ff;}
.user-menu-logout{background:#2869a9!important;color:#fff!important;text-align:center!important;margin-top:4px;}
.company-group{border:1px solid #d6e5f4;border-radius:18px;background:#fff;margin:14px 0;overflow:hidden;box-shadow:0 10px 28px rgba(10,45,86,.06);}
.company-group>summary{cursor:pointer;list-style:none;padding:14px 18px;background:#f5f9fe;color:#062b4f;font-weight:900;display:flex;align-items:center;gap:10px;border-bottom:1px solid #d6e5f4;}
.company-group>summary::-webkit-details-marker{display:none;}
.company-group>summary::before{content:'⌄';display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #bdd6f1;border-radius:10px;background:#fff;color:#0b4f93;font-weight:900;}
.company-group:not([open])>summary::before{content:'›';}
.company-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;border-radius:999px;background:#eaf3fc;color:#285a89;font-size:13px;font-weight:900;padding:0 8px;}
.company-group .table{margin:0;border-radius:0;box-shadow:none;border:0;}
.company-group .table tr:first-child th{border-top:0;}
.check-dropdown{position:relative;}
.check-dropdown>summary{height:44px;border:1px solid #bdd2e8;border-radius:12px;background:#fff;display:flex;align-items:center;padding:0 14px;cursor:pointer;font-weight:700;color:#0b2d4e;list-style:none;}
.check-dropdown>summary::-webkit-details-marker{display:none;}
.check-dropdown>summary::after{content:'▾';margin-left:auto;font-size:11px;}
.check-dropdown[open]>summary::after{content:'▴';}
.check-dropdown-panel{position:absolute;left:0;top:calc(100% + 6px);z-index:900;width:min(320px,90vw);max-height:260px;overflow:auto;background:#fff;border:1px solid #d7e5f3;border-radius:14px;box-shadow:0 16px 36px rgba(20,62,105,.15);padding:10px;display:flex;flex-direction:column;gap:7px;}
.check-dropdown-panel label{display:flex;align-items:center;gap:8px;font-weight:700;padding:8px;border-radius:10px;}
.check-dropdown-panel label:hover{background:#eef6ff;}
.bulk-toolbar,.task-filter-card,.project-search-row{margin-bottom:12px;}
.project-search-field{flex:1;}
.empty-state{padding:18px;border:1px dashed #c6d9ed;border-radius:14px;background:#f8fbff;}
@media (max-width: 780px){.user-menu-panel{right:-8px;min-width:230px}.company-group>summary{padding:12px}.company-group .table{min-width:760px}.company-group{overflow:auto}.check-dropdown-panel{position:fixed;left:16px;right:16px;top:auto;width:auto}}

/* v1006 style polish: compact filters, dropdown alignment, full-width header */
:root{
  --tf-control-h:42px;
  --tf-control-radius:12px;
}

/* Make authenticated top bar fill the full viewport and keep content aligned */
.auth-body .site-header,
.auth-body .header-bar{
  width:100%;
  max-width:none;
}
.auth-body .header-inner{
  width:100%;
  max-width:none;
  min-height:58px;
  padding:6px 36px;
  gap:20px;
}
.auth-body .header-bar{min-height:58px;background:#2f67a1;}
.auth-body .brand-inline{min-width:230px;}
.auth-body .top-nav{gap:8px;align-items:center;}
.auth-body .top-nav a{
  min-height:42px;
  padding:9px 16px;
  border-radius:13px;
  font-size:16px;
  line-height:1;
}
.auth-body .top-nav a.active,
.auth-body .top-nav a:hover{background:rgba(255,255,255,.15);}
.auth-body .header-user-auth{min-width:210px;display:flex;justify-content:flex-end;}

/* Page spacing */
.page-shell{max-width:100%;padding:18px 28px 96px;}
.top{margin-bottom:14px;align-items:center;}
.title{font-size:30px;font-weight:900;letter-spacing:-.02em;color:#062b4f;}
.sub{font-size:15px;color:#5b718a;}

/* Uniform cards and controls */
.card{border-radius:16px;border-color:#cfddea;box-shadow:0 10px 28px rgba(11,51,91,.055);}
.btn,
button.btn,
a.btn{
  min-height:var(--tf-control-h);
  padding:0 18px;
  border-radius:var(--tf-control-radius);
  font-size:14px;
  font-weight:850;
  line-height:1;
  box-shadow:0 8px 18px rgba(37,95,159,.16);
}
.btn.secondary{box-shadow:none;background:#fff;border-color:#bfd2e6;color:#092b4d;}
.btn:hover{transform:none;filter:brightness(.98);}
.field{margin-bottom:0;}
.field label{margin-bottom:6px;font-size:13px;font-weight:850;color:#062b4f;}
.field input,
.field select,
.field textarea,
.toolbar select,
.bulk-toolbar select{
  min-height:var(--tf-control-h);
  border-radius:var(--tf-control-radius);
  border-color:#bfd2e6;
  font-size:14px;
  color:#092b4d;
  background:#fff;
}

/* Compact filter blocks */
.filter-card{padding:14px 16px;margin-bottom:18px;}
.filter-grid{
  display:grid;
  grid-template-columns:minmax(340px,1.7fr) repeat(4,minmax(150px,1fr));
  gap:12px;
  align-items:end;
}
.compact-toolbar{
  margin-top:12px;
  gap:10px;
  align-items:center;
}
.compact-toolbar .check,
.compact-toolbar .check-inline,
.toolbar .check{
  min-height:var(--tf-control-h);
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:0 14px;
  border:1px solid #cfe0f0;
  border-radius:999px;
  background:#fff;
  color:#092b4d;
  font-size:14px;
  font-weight:800;
  white-space:nowrap;
}
.compact-toolbar input[type='checkbox'],
.toolbar input[type='checkbox'],
.table input[type='checkbox'],
.check-dropdown-panel input[type='checkbox']{
  width:16px;
  height:16px;
  accent-color:#1f66aa;
  flex:0 0 auto;
}

/* Checkbox dropdown: prevent vertical broken labels */
.check-dropdown{position:relative;width:100%;min-width:0;}
.check-dropdown>summary{
  width:100%;
  min-height:var(--tf-control-h);
  height:var(--tf-control-h);
  border:1px solid #bfd2e6;
  border-radius:var(--tf-control-radius);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:0 14px;
  cursor:pointer;
  font-weight:850;
  font-size:14px;
  color:#092b4d;
  list-style:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.check-dropdown>summary::-webkit-details-marker{display:none;}
.check-dropdown>summary::after{content:'▾';margin-left:8px;font-size:10px;line-height:1;flex:0 0 auto;}
.check-dropdown[open]>summary::after{content:'▴';}
.check-dropdown-panel{
  position:absolute;
  left:0;
  top:calc(100% + 8px);
  z-index:1200;
  min-width:260px;
  width:max-content;
  max-width:min(360px,calc(100vw - 40px));
  max-height:280px;
  overflow:auto;
  background:#fff;
  border:1px solid #cfe0f0;
  border-radius:16px;
  box-shadow:0 18px 42px rgba(15,53,89,.18);
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.check-dropdown-panel label,
.check-dropdown .check-dropdown-panel label{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  width:100%!important;
  min-width:220px!important;
  min-height:34px!important;
  padding:7px 10px!important;
  margin:0!important;
  border-radius:11px!important;
  color:#092b4d!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  text-align:left!important;
}
.check-dropdown-panel label:hover{background:#eef6ff;}
.check-dropdown-panel input{margin:0!important;}

/* Bulk toolbar */
.bulk-toolbar{padding:0;gap:8px;align-items:center;margin-bottom:10px;}
.bulk-toolbar strong{font-size:15px;color:#062b4f;margin-right:2px;}
.bulk-toolbar select{width:auto;min-width:190px;padding:0 12px;}

/* Company grouping and table polish */
.company-group{
  margin:12px 0 0;
  border-radius:16px;
  border-color:#cfddea;
  box-shadow:0 10px 28px rgba(11,51,91,.055);
}
.company-group>summary{
  min-height:50px;
  padding:9px 18px;
  background:#f4f8fc;
  color:#062b4f;
  border-bottom:1px solid #d9e6f3;
  font-size:17px;
}
.company-group>summary::before{width:28px;height:28px;border-radius:9px;}
.company-group-count{height:22px;min-width:26px;font-size:12px;}
.company-group .table{table-layout:fixed;width:100%;min-width:100%;border-collapse:separate;border-spacing:0;}
.company-group .table tr:first-child{background:#f6f9fd;}
.company-group .table th:last-child,.company-group .table td:last-child{width:124px;min-width:124px;}
.company-group .table th:last-child{background:#f6f9fd;}
.table th{
  padding:12px 14px;
  background:#f6f9fd;
  color:#062b4f;
  font-size:12px;
  font-weight:900;
}
.table td{
  padding:10px 14px;
  background:#fff;
  vertical-align:middle;
  line-height:1.35;
}
.company-group .table tr:hover td{background:#f8fbff;}
.ticket-latest-action{font-size:13px;color:#24415f;}
.ticket-latest-action .kind,
.ticket-latest-action .pill,
.kind{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 8px;
  border-radius:999px;
  background:#eef6ff;
  border:1px solid #d4e5f7;
  color:#0b4f93;
  font-size:12px;
  font-weight:850;
}
.badge{min-height:24px;padding:4px 12px;font-size:11px;font-weight:850;text-transform:uppercase;}

/* User dropdown polish */
.user-menu-summary{min-width:180px;padding:4px 6px;border-radius:12px;}
.user-menu-summary:hover{background:rgba(255,255,255,.12);}
.user-menu-panel{min-width:270px;border-radius:18px;padding:10px;}
.user-menu-panel a,.user-menu-panel button{padding:11px 14px;border-radius:12px;font-weight:850;}
.user-menu-logout{border-radius:12px!important;}

/* Footer: compact and aligned */
.site-footer .footer-inner{max-width:none!important;width:100%!important;padding:6px 36px!important;}
.site-footer .footer-right{gap:14px!important;}
.footer-language-switch{gap:7px!important;}
.footer-lang-chip{min-width:44px;min-height:28px;padding:5px 10px;border-radius:999px;font-weight:850;}

@media (max-width:1250px){
  .filter-grid{grid-template-columns:minmax(260px,1.4fr) repeat(2,minmax(150px,1fr));}
}
@media (max-width:820px){
  .auth-body .header-inner{padding:8px 16px;flex-wrap:wrap;gap:10px;}
  .auth-body .brand-inline{min-width:auto;}
  .auth-body .top-nav{order:3;width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:4px;}
  .auth-body .top-nav a{font-size:14px;min-height:38px;padding:8px 12px;white-space:nowrap;}
  .auth-body .header-user-auth{min-width:0;margin-left:auto;}
  .page-shell{padding:16px 14px 86px;}
  .top{align-items:flex-start;}
  .filter-grid{grid-template-columns:1fr;}
  .compact-toolbar{gap:8px;}
  .compact-toolbar .check,.compact-toolbar .check-inline{width:100%;justify-content:flex-start;}
  .compact-toolbar .btn{width:100%;}
  .bulk-toolbar select,.bulk-toolbar .btn{width:100%;}
  .company-group{overflow:auto;}
  .company-group .table{min-width:860px;}
  .check-dropdown-panel{position:fixed;left:14px;right:14px;top:auto;width:auto;max-width:none;min-width:0;}
}

/* v1007 security/rollback helpers */
.mt-18{margin-top:18px!important;}
.mb-14{margin-bottom:14px!important;}
.btn-small{min-height:32px;padding:7px 10px;font-size:12px;border-radius:10px;}
.btn.danger{background:#b42318;color:#fff;border-color:#b42318;}
.danger-zone{border-color:rgba(180,35,24,.25);}
.alert.warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:12px 14px;margin-bottom:14px;}

/* v1010 stabilisatie: full-width topbar, mobile-safe navigation and two-row project action bar */
.auth-body .site-shell,.auth-body .site-header,.auth-body .header-bar{width:100%;max-width:none;}
.auth-body .header-inner{max-width:none;width:100%;box-sizing:border-box;padding-left:28px;padding-right:28px;}
.auth-body .top-nav{flex:1 1 auto;min-width:0;}
.auth-body .header-user-auth{margin-left:auto;}
.user-menu-panel a[href*="my_tickets"] + a[href*="portal_alias_login"]{border-top:1px solid #edf2f8;margin-top:4px;padding-top:12px;}
.admin-list-search{margin:10px 0 14px 0;}
.admin-list-empty{display:none;margin-bottom:10px;}
.company-admin-card{flex:1 1 440px;}
.project-sticky-bar{position:sticky;top:72px;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border:1px solid #d8e4f2;border-radius:18px;box-shadow:0 14px 32px rgba(18,38,63,.08);padding:10px;display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0 16px;}
.project-sticky-bar .group{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0;}
.project-sticky-bar .group:first-child{padding-bottom:8px;border-bottom:1px solid #edf2f8;}
.project-sticky-bar .chip-link{min-height:36px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid #cbd9ea;border-radius:999px;background:#f6faff;color:#0b2d4e;font-weight:850;text-decoration:none;white-space:nowrap;}
.project-sticky-bar .chip-link:hover{background:#eaf3ff;}
.project-sticky-bar .btn-small{min-height:34px;}
@media(max-width:820px){
  .auth-body .header-inner{padding-left:14px;padding-right:14px;}
  .auth-body .top-nav{overflow-x:auto;flex-wrap:nowrap;max-width:100%;}
  .auth-body .top-nav a{white-space:nowrap;flex:0 0 auto;}
  .project-sticky-bar{top:58px;border-radius:14px;padding:8px;}
  .project-sticky-bar .group{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;}
  .project-sticky-bar .group:first-child{border-bottom:1px solid #edf2f8;}
  .project-sticky-bar .chip-link,.project-sticky-bar .btn-small{flex:0 0 auto;}
}

/* v1011 ticketdetail: sticky save state */
.ticket-action-stickybar .sticky-save-btn{
  min-height:36px;
  padding:8px 16px;
  border-radius:12px;
  border:1px solid #cbd9ea;
  background:#eef3f8;
  color:#718096;
  font-weight:850;
  cursor:not-allowed;
  box-shadow:none;
}
.ticket-action-stickybar .sticky-save-btn.is-dirty:not(:disabled){
  background:#255f9f;
  border-color:#255f9f;
  color:#fff;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(37,95,159,.18);
}
.ticket-action-stickybar .sticky-save-btn:disabled{opacity:.78;}
@media(max-width:820px){
  .ticket-action-stickybar .sticky-save-btn{flex:0 0 auto;min-height:34px;padding:7px 13px;}
}


/* v1014 UI stabilisatie: full-width header, safer mobile navigation, project two-row bar and version manager polish */
:root{--tf-header-pad-x:clamp(14px,2vw,32px);}
html,body{max-width:100%;overflow-x:hidden;}
.auth-body .site-shell{width:100%;max-width:none;overflow-x:clip;}
.auth-body .site-header,.auth-body .header-bar{width:100%;max-width:none;margin:0;}
.auth-body .header-inner{
  width:100%;max-width:none;margin:0;box-sizing:border-box;
  padding-left:var(--tf-header-pad-x)!important;padding-right:var(--tf-header-pad-x)!important;
  display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;
}
.auth-body .brand-inline{min-width:0;justify-self:start;}
.auth-body .brand-copy{min-width:0;}
.auth-body .top-nav{justify-self:stretch;justify-content:flex-start!important;min-width:0;width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding:2px 2px 4px;}
.auth-body .top-nav a{flex:0 0 auto;white-space:nowrap;min-height:38px;line-height:1;}
.auth-body .header-user-auth{justify-self:end;min-width:0;}
.header-user-auth .user-menu{position:relative;}
.header-user-auth .user-menu-panel{right:0;left:auto;max-width:min(92vw,320px);}
.page-shell{box-sizing:border-box;width:100%;max-width:1480px;margin-left:auto;margin-right:auto;}
.top{gap:14px;}
.top .toolbar,.top .toolbar.tight{flex-wrap:wrap;justify-content:flex-end;}

.project-page .top{align-items:flex-start;}
.project-summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));}
.project-sticky-bar{
  display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%;box-sizing:border-box;
  margin:12px 0 16px!important;overflow:hidden;
}
.project-sticky-bar .group{display:flex!important;flex-wrap:wrap;gap:8px;min-width:0;align-items:center;}
.project-sticky-bar .group:first-child{padding-bottom:8px;border-bottom:1px solid #edf2f8;}
.project-sticky-bar .chip-link,.project-sticky-bar .btn-small{white-space:nowrap;min-height:34px;}
.project-sticky-spacer.is-active{height:92px;}

.ribbon-head{align-items:flex-start;}
.ribbon-tabs,.ribbon-actions{min-width:0;}
.ribbon-actions{justify-content:flex-end;}
.compact-form .row{align-items:flex-end;}
.compact-form .field{min-width:min(100%,210px);}
.company-group{max-width:100%;}
.company-group summary{position:sticky;left:0;z-index:2;}
.table.table-compact th,.table.table-compact td{white-space:normal;}
.table.table-compact .btn-small{white-space:nowrap;}

.version-manager-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;align-items:start;}
.version-current-card .stack>div,.version-mastercode-card .stack>div,.version-workflow-card .stack>div,.version-security-card .stack>div{padding:8px 0;border-bottom:1px solid #edf2f8;}
.version-current-card .stack>div:last-child,.version-mastercode-card .stack>div:last-child,.version-workflow-card .stack>div:last-child,.version-security-card .stack>div:last-child{border-bottom:0;}
.version-warning-box{margin:10px 0 14px;}
.admin-search-card,.module-card{min-width:0;}

@media(max-width:980px){
  .auth-body .header-inner{grid-template-columns:auto auto;grid-template-areas:'brand user' 'nav nav';gap:8px 12px;}
  .auth-body .brand-inline{grid-area:brand;}
  .auth-body .header-user-auth{grid-area:user;}
  .auth-body .top-nav{grid-area:nav;}
  .auth-body .brand-copy small{display:none;}
  .version-manager-grid{grid-template-columns:1fr;}
  .ribbon-head{flex-direction:column;align-items:stretch;}
  .ribbon-actions{justify-content:flex-start;}
}
@media(max-width:720px){
  :root{--tf-header-pad-x:12px;}
  .auth-body .header-inner{padding-top:8px!important;padding-bottom:8px!important;}
  .auth-body .brand-image{width:30px;height:30px;}
  .auth-body .brand-copy strong{font-size:14px;}
  .auth-body .top-nav{gap:6px;padding-bottom:6px;}
  .auth-body .top-nav a{min-height:36px;padding:8px 11px;font-size:13px;border-radius:11px;}
  .user-menu-summary{min-width:0;max-width:48vw;}
  .user-menu-summary .user-name{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .user-menu-summary .user-meta{display:none;}
  .page-shell{padding-left:12px!important;padding-right:12px!important;padding-bottom:92px!important;}
  .top{flex-direction:column;align-items:stretch;}
  .top .toolbar,.top .toolbar.tight{justify-content:flex-start;width:100%;}
  .project-sticky-bar{top:58px!important;border-radius:14px;}
  .project-sticky-bar .group{flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:4px;}
  .project-sticky-bar .group:first-child{padding-bottom:8px;}
  .project-sticky-spacer.is-active{height:104px;}
  .company-group{overflow:auto;}
  .company-group .table{min-width:820px;}
  .footer-inner{flex-direction:column;align-items:flex-start!important;gap:6px;}
  .footer-right-v1014{width:100%;justify-content:space-between;}
}

/* v1015 Version Manager */
.version-snapshot-card .row-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.version-details-box{margin-top:12px;line-height:1.45}.version-details-box.hidden{display:none}.section-head form{margin:0}@media(max-width:760px){.version-snapshot-card .row-actions{flex-direction:column;align-items:stretch}.version-snapshot-card .row-actions .btn{width:100%}.version-manager-grid{grid-template-columns:1fr!important}}


/* v1016 Layout Consistency Audit fixes
   Doel: één full-width layout-systeem voor guest/auth pagina's.
   Belangrijk: er stond legacy extracted CSS uit ticket_detail.html met body padding:16px;
   deze override herstelt de globale site-layout zonder extra CSS-bestanden. */
html,
body{
  width:100%!important;
  min-width:0!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow-x:hidden!important;
  background:var(--bg)!important;
  color:var(--text)!important;
  font-family:Inter,"Segoe UI",Arial,sans-serif!important;
  line-height:1.45;
}
.site-shell,
.site-header,
.header-bar,
.footer-bar{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
.header-inner,
.footer-inner{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}
.guest-body .header-inner,
.guest-body .footer-inner{
  padding-left:clamp(14px,3vw,54px)!important;
  padding-right:clamp(14px,3vw,54px)!important;
}
.guest-body .login-shell{
  width:100%!important;
  max-width:none!important;
  min-height:calc(100vh - 104px)!important;
  margin:0!important;
  padding:32px clamp(14px,3vw,54px) 72px!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  box-sizing:border-box!important;
}
.guest-body .login-clean-page{
  width:100%!important;
  max-width:none!important;
  min-height:auto!important;
  padding:52px 0 0!important;
  display:grid!important;
  place-items:start center!important;
}
.guest-body .login-clean-card{
  width:min(440px,100%)!important;
  max-width:100%!important;
}
.auth-body .page-shell{
  width:100%!important;
  max-width:1480px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
.auth-body .site-header{
  left:0!important;
  right:0!important;
}
.ticket-message-html,
.ticket-message-body,
.message-body,
.mail-message-body,
.mail-preview-body,
.email-preview-body{
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  color:var(--text);
}
.ticket-message-html img,
.ticket-message-body img,
.message-body img{max-width:100%!important;height:auto!important;}
.ticket-message-html table,
.ticket-message-body table,
.message-body table{max-width:100%!important;border-collapse:collapse;}
@media(max-width:980px){
  .guest-body .login-shell{min-height:calc(100vh - 126px)!important;padding-top:24px!important;}
  .guest-body .login-clean-page{padding-top:42px!important;}
}
@media(max-width:720px){
  .guest-body .header-inner{min-height:58px!important;}
  .guest-body .brand-copy strong{font-size:16px;}
  .guest-body .login-shell{padding-left:14px!important;padding-right:14px!important;padding-bottom:84px!important;}
  .guest-body .login-clean-card{padding:22px!important;border-radius:16px!important;}
}


/* === v1017 portal/auth logo alignment === */
.login-clean-card{
  position:relative;
  margin-top:58px;
  padding-top:74px;
}
.login-clean-logo{
  position:absolute;
  left:0;
  right:0;
  top:-58px;
  display:flex;
  justify-content:center;
  align-items:center;
  margin:0;
  pointer-events:none;
}
.login-clean-logo img{
  width:116px;
  height:auto;
  display:block;
}
.login-clean-header{
  margin-top:0;
}
@media(max-width:700px){
  .login-clean-card{
    margin-top:48px!important;
    padding-top:62px!important;
  }
  .login-clean-logo{
    top:-48px!important;
  }
  .login-clean-logo img{
    width:96px!important;
  }
}


/* === v1018 portal/auth compact logo spacing === */
.login-clean-page{
  padding-top:34px!important;
  padding-bottom:44px!important;
  align-content:start!important;
}
.guest-body .login-clean-page{
  padding-top:34px!important;
}
.login-clean-card{
  width:min(430px,100%)!important;
  margin-top:52px!important;
  padding:54px 24px 24px!important;
  border-radius:16px!important;
}
.login-clean-logo{
  top:-52px!important;
  height:104px!important;
}
.login-clean-logo img{
  width:108px!important;
  max-width:34vw!important;
}
.login-clean-header{
  margin-bottom:16px!important;
}
.login-clean-header h1{
  font-size:1.5rem!important;
}
.login-clean-form{
  gap:12px!important;
}
.login-clean-secondary{
  margin-top:10px!important;
}
.login-clean-divider{
  margin:18px 0 12px!important;
}
.login-clean-actions{
  gap:8px!important;
}
.login-clean-info{
  display:none!important;
}
@media(max-width:700px){
  .login-clean-page{
    padding-top:24px!important;
    padding-bottom:32px!important;
  }
  .guest-body .login-clean-page{
    padding-top:24px!important;
  }
  .login-clean-card{
    width:min(410px,100%)!important;
    margin-top:44px!important;
    padding:48px 20px 22px!important;
  }
  .login-clean-logo{
    top:-44px!important;
    height:88px!important;
  }
  .login-clean-logo img{
    width:92px!important;
  }
  .login-clean-header h1{
    font-size:1.35rem!important;
  }
}

/* v1019 - ticket/project interaction stability */
.ticket-detail-sticky-shell{--module-accent:#e0a12b;}
.ticket-detail-sticky-shell,.task-detail-sticky-shell{scroll-margin-top:86px;}
.ticket-detail-sticky-shell .ticket-actions-row{position:relative;z-index:42;}
#ticket-latest-message-card,#ticket-reply-editor-card,#ticket-history-card,#ticket-details-card,#ticket-task-card,#ticket-ai-card,#ticket-time-card,
.project-anchor{scroll-margin-top:150px;}
.mail-readbox{max-height:calc(100vh - 255px);display:flex;flex-direction:column;}
.mail-readbox-toolbar{flex:0 0 auto;}
.mail-readbox-frame{height:clamp(300px,46vh,520px);min-height:280px;overflow:auto;}
.mail-readbox.is-expanded{max-height:none;}
.mail-readbox.is-expanded .mail-readbox-frame{height:clamp(520px,72vh,860px);}
.ticket-focus-active .ticket-focus-current .mail-readbox-frame,
.ticket-focus-active #ticket-latest-message-card .mail-readbox-frame{height:clamp(320px,50vh,560px);}
.project-sticky-bar{position:sticky!important;top:72px!important;z-index:75!important;}
.project-sticky-bar .group:first-child{overflow-x:auto;scrollbar-width:thin;}
.project-actions-panel.is-open{display:block!important;}
#member-panel .row{align-items:end;}
#member-panel select[name="user_id"]{min-width:260px;width:100%;}
#member-panel .toolbar{margin-top:10px;}
@media (max-width:780px){
  .mail-readbox{max-height:none;}
  .mail-readbox-frame{height:360px;}
  #ticket-latest-message-card,#ticket-reply-editor-card,#ticket-history-card,#ticket-details-card,#ticket-task-card,#ticket-ai-card,#ticket-time-card,.project-anchor{scroll-margin-top:128px;}
  .project-sticky-bar{top:58px!important;}
  #member-panel .row{grid-template-columns:1fr!important;}
}


/* v1020 interaction cleanup */
.project-sticky-bar{grid-template-columns:1fr!important;}
.project-sticky-bar .group:first-child{border-bottom:0!important;padding-bottom:0!important;}
.project-sticky-bar .group{justify-content:flex-start;}
.clean-multiselect>summary{min-height:44px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.clean-multiselect .check-dropdown-panel{min-width:260px;}
.clean-multiselect .check-dropdown-panel label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ticket-action-stickybar a.active{background:#fff;border-color:#b7c9df;color:#0a4a8e;}
.focus-target{scroll-margin-top:150px;}
.project-anchor{scroll-margin-top:150px;}
@media (max-width: 780px){
  .clean-multiselect .check-dropdown-panel{min-width:0;}
  .project-sticky-bar .group{overflow-x:auto;flex-wrap:nowrap;}
}

/* === v1022 auth layout consolidation: one final auth/logo system === */
.login-clean-page,
.guest-body .login-clean-page{
  width:100%!important;
  max-width:none!important;
  min-height:calc(100vh - 118px)!important;
  margin:0!important;
  padding:28px 16px 42px!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  box-sizing:border-box!important;
}
.login-clean-card{
  position:relative!important;
  width:min(430px,100%)!important;
  margin:76px auto 0!important;
  padding:36px 24px 24px!important;
  border-radius:16px!important;
  box-sizing:border-box!important;
}
.login-clean-logo{
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  top:-82px!important;
  width:142px!important;
  height:70px!important;
  margin:0!important;
  transform:translateX(-50%)!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  pointer-events:none!important;
}
.login-clean-logo img{
  display:block!important;
  width:118px!important;
  max-width:38vw!important;
  height:auto!important;
  object-fit:contain!important;
}
.login-clean-header{
  margin:0 0 16px!important;
  text-align:center!important;
}
.login-clean-header h1{
  margin:0!important;
  font-size:1.48rem!important;
  line-height:1.18!important;
}
.login-clean-header p{
  margin:6px 0 0!important;
}
.login-clean-form{gap:12px!important;}
.login-clean-divider{margin:18px 0 12px!important;}
.login-clean-actions{gap:8px!important;}
.login-clean-secondary{margin-top:10px!important;}
@media(max-width:700px){
  .login-clean-page,
  .guest-body .login-clean-page{
    min-height:calc(100vh - 104px)!important;
    padding:20px 14px 32px!important;
  }
  .login-clean-card{
    width:min(410px,100%)!important;
    margin-top:62px!important;
    padding:32px 20px 22px!important;
  }
  .login-clean-logo{
    top:-68px!important;
    width:120px!important;
    height:58px!important;
  }
  .login-clean-logo img{
    width:98px!important;
  }
  .login-clean-header h1{font-size:1.32rem!important;}
}

/* v1023 ticket stickybar navigation fix */
.ticket-detail-sticky-shell .ticket-actions-row [data-ticket-tab="calendar"] { order: 8 !important; }
#ticket-calendar-card { scroll-margin-top: 170px; }
.ticket-focus-active #ticket-calendar-card.ticket-focus-current,
.focus-layout-active #ticket-calendar-card.ticket-focus-current { display:block !important; }


/* v1024: native anchor navigation + consistent sticky save */
html { scroll-behavior: smooth; }
#ticket-latest-message-card,
#ticket-reply-editor-card,
#ticket-history-card,
#ticket-details-card,
#ticket-task-card,
#ticket-ai-card,
#ticket-time-card,
#ticket-calendar-card,
.task-detail-sticky-shell ~ .card[id],
.project-anchor,
.project-actions-panel {
  scroll-margin-top: 170px;
}
.sticky-save-btn[disabled],
.sticky-save-btn[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
  background: #eef4fb !important;
  color: #6b7f98 !important;
  border-color: #cbd9ea !important;
  box-shadow: none !important;
}
.sticky-save-btn.is-dirty:not([disabled]) {
  opacity: 1;
  cursor: pointer;
  background: var(--blue, #2366a8) !important;
  color: #fff !important;
  border-color: var(--blue, #2366a8) !important;
}


/* v1025: ticket anchor navigation reliability
   Ticket detail used a two-column layout; native anchors in the right column
   appeared not to move because the target was already near the top.
   Stack ticket sections like project detail so href="#..." navigation is deterministic. */
.ticket-detail-section-stack {
  display: block !important;
}
.ticket-detail-section-stack > div {
  display: grid;
  gap: 16px;
  min-width: 0;
}
.ticket-detail-section-stack .ticket-focus-secondary {
  margin-top: 16px;
}
#ticket-latest-message-card,
#ticket-reply-editor-card,
#ticket-history-card,
#ticket-details-card,
#ticket-task-card,
#ticket-ai-card,
#ticket-time-card,
#ticket-calendar-card {
  scroll-margin-top: 190px !important;
}
#ticket-latest-message-card:target,
#ticket-reply-editor-card:target,
#ticket-history-card:target,
#ticket-details-card:target,
#ticket-task-card:target,
#ticket-ai-card:target,
#ticket-time-card:target,
#ticket-calendar-card:target {
  outline: 2px solid rgba(37, 95, 159, .22);
  box-shadow: 0 16px 36px rgba(17, 44, 72, .10);
}
.ticket-focus-active .ticket-detail-section-stack {
  display: block !important;
}
.ticket-focus-active .ticket-focus-secondary {
  display: grid !important;
  opacity: 1 !important;
  transform: none !important;
}


/* v1026: ticket anchor navigation must be native and not blocked by legacy JS. */
.ticket-detail-section-stack {
    display: block !important;
    width: 100%;
}
.ticket-detail-section-stack > div {
    width: 100%;
}
.ticket-detail-section-stack .ticket-section-anchor,
.ticket-detail-section-stack .focus-target[id^="ticket-"] {
    scroll-margin-top: 190px;
}
@media (max-width: 900px) {
    .ticket-detail-section-stack .ticket-section-anchor,
    .ticket-detail-section-stack .focus-target[id^="ticket-"] {
        scroll-margin-top: 220px;
    }
}


/* v1027: ticket focus mode aligned with project focus mode.
   Ticket sections remain stacked; non-selected blocks are softly collapsed instead of hidden by the old global focus layout. */
body.ticket-focus-active .ticket-detail-section-stack .focus-target {
  opacity: .18 !important;
  max-height: 84px !important;
  overflow: hidden !important;
  pointer-events: none !important;
  filter: grayscale(.15) !important;
  transform: none !important;
  transition: opacity .18s ease, max-height .18s ease, box-shadow .18s ease;
}
body.ticket-focus-active .ticket-detail-section-stack .focus-target.ticket-focus-current,
body.ticket-focus-active .ticket-detail-section-stack .focus-target.is-focused {
  opacity: 1 !important;
  max-height: none !important;
  overflow: visible !important;
  pointer-events: auto !important;
  filter: none !important;
  box-shadow: 0 0 0 2px rgba(63,127,191,.18), 0 14px 30px rgba(18,38,63,.10) !important;
}
body.ticket-focus-active .ticket-detail-section-stack .ticket-focus-secondary {
  display: grid !important;
}
body.ticket-focus-active .ticket-detail-section-stack .ticket-focus-current.ticket-focus-secondary {
  display: block !important;
}
body.ticket-focus-active .ticket-detail-section-stack {
  display: block !important;
  width: 100% !important;
}
body.ticket-focus-active .ticket-detail-section-stack > div {
  display: grid !important;
  gap: 16px !important;
}
@media (max-width: 760px) {
  body.ticket-focus-active .ticket-detail-section-stack .focus-target {
    max-height: 68px !important;
  }
}

/* v1028: unified stickybar concept for Tickets, Projecten en Taken */
.ticket-actions-row,
.project-sticky-bar .group,
.task-actions-row {
  align-items: center;
  gap: 8px;
}
.ticket-actions-row > .sticky-save-btn,
.project-sticky-bar .group > .sticky-save-btn,
.task-actions-row > .sticky-save-btn {
  order: -10;
  margin-right: 2px;
}
.ticket-actions-row a,
.ticket-actions-row button:not(.sticky-save-btn),
.project-sticky-bar .group a,
.project-sticky-bar .group button:not(.sticky-save-btn),
.task-actions-row a,
.task-actions-row button:not(.sticky-save-btn) {
  min-height: 34px;
}
.task-detail-section-stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  width: 100%;
}
.task-section-anchor {
  scroll-margin-top: 190px !important;
}
.task-detail-sticky-shell.task-accent-default {
  --module-accent: #3f7fbf;
}
.task-muted-gap,
.task-stack-gap,
.task-list-gap,
.task-form-gap {
  margin-top: 12px;
}
.task-toolbar-gap {
  margin-top: 10px;
}
body.task-focus-active .task-detail-section-stack .focus-secondary {
  display: block !important;
  opacity: .28;
  max-height: 92px;
  overflow: hidden;
  pointer-events: none;
  filter: grayscale(.12);
}
body.task-focus-active .task-detail-section-stack .focus-primary,
body.task-focus-active .task-detail-section-stack .is-focused {
  opacity: 1 !important;
  max-height: none !important;
  overflow: visible !important;
  pointer-events: auto !important;
  filter: none !important;
  box-shadow: 0 0 0 2px rgba(63,127,191,.18), 0 14px 30px rgba(18,38,63,.10);
}
@media (max-width: 760px) {
  .ticket-actions-row,
  .project-sticky-bar .group,
  .task-actions-row {
    gap: 6px;
  }
  .ticket-actions-row a,
  .ticket-actions-row button,
  .project-sticky-bar .group a,
  .project-sticky-bar .group button,
  .task-actions-row a,
  .task-actions-row button {
    font-size: 12px;
    padding: 7px 9px;
  }
  .task-section-anchor { scroll-margin-top: 220px !important; }
}

/* v1030: unified Opslaan button style for all detail stickybars */
.ticket-detail-sticky-shell .ticket-actions-row .sticky-save-btn,
.project-sticky-bar .group .sticky-save-btn,
.task-detail-sticky-shell .task-actions-row .sticky-save-btn,
.task-actions-row .sticky-save-btn,
.ticket-actions-row .sticky-save-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 112px !important;
  min-height: 38px !important;
  height: 38px !important;
  padding: 0 16px !important;
  border-radius: 13px !important;
  border: 1px solid #cbd9ea !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  font-family: inherit !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
.ticket-detail-sticky-shell .ticket-actions-row .sticky-save-btn:disabled,
.project-sticky-bar .group .sticky-save-btn:disabled,
.task-detail-sticky-shell .task-actions-row .sticky-save-btn:disabled,
.task-actions-row .sticky-save-btn:disabled,
.ticket-actions-row .sticky-save-btn:disabled,
.ticket-detail-sticky-shell .ticket-actions-row .sticky-save-btn[aria-disabled="true"],
.project-sticky-bar .group .sticky-save-btn[aria-disabled="true"],
.task-detail-sticky-shell .task-actions-row .sticky-save-btn[aria-disabled="true"],
.task-actions-row .sticky-save-btn[aria-disabled="true"],
.ticket-actions-row .sticky-save-btn[aria-disabled="true"] {
  background: #eef4fb !important;
  color: #7a8da5 !important;
  border-color: #cbd9ea !important;
  box-shadow: none !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
}
.ticket-detail-sticky-shell .ticket-actions-row .sticky-save-btn.is-dirty:not(:disabled),
.project-sticky-bar .group .sticky-save-btn.is-dirty:not(:disabled),
.task-detail-sticky-shell .task-actions-row .sticky-save-btn.is-dirty:not(:disabled),
.task-actions-row .sticky-save-btn.is-dirty:not(:disabled),
.ticket-actions-row .sticky-save-btn.is-dirty:not(:disabled) {
  background: var(--blue, #2366a8) !important;
  color: #fff !important;
  border-color: var(--blue, #2366a8) !important;
  box-shadow: 0 10px 22px rgba(35, 102, 168, .18) !important;
  cursor: pointer !important;
}
@media (max-width: 760px) {
  .ticket-detail-sticky-shell .ticket-actions-row .sticky-save-btn,
  .project-sticky-bar .group .sticky-save-btn,
  .task-detail-sticky-shell .task-actions-row .sticky-save-btn,
  .task-actions-row .sticky-save-btn,
  .ticket-actions-row .sticky-save-btn {
    min-width: 104px !important;
    min-height: 36px !important;
    height: 36px !important;
    padding: 0 13px !important;
  }
}

/* v1032 multilanguage: shared header/footer language switch */
.header-language-switch{display:flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap}
.compact-language-switch .lang-chip{min-width:38px;min-height:28px;padding:5px 9px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);color:#fff;text-decoration:none}
.compact-language-switch .lang-chip.active,.compact-language-switch .lang-chip:hover{background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.42);color:#fff}
.guest-header-actions{gap:10px;align-items:center}
@media (max-width:920px){.header-language-switch{order:3}.auth-body .header-language-switch{margin-left:0}.guest-header-actions{width:100%;justify-content:space-between}.compact-language-switch .lang-chip{min-width:36px}}


/* v1036: keep language selector out of topbar; restore single-row header */
.site-header .header-language-switch{display:none!important;}
.site-footer .footer-language-switch{display:flex;align-items:center;gap:6px;white-space:nowrap;}
.site-footer .footer-right-v1014{width:auto!important;justify-content:flex-end!important;margin-left:auto;}
.site-footer .footer-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;}
@media (max-width:760px){
  .site-footer .footer-inner{align-items:flex-start;}
  .site-footer .footer-right-v1014{width:100%!important;justify-content:space-between!important;margin-left:0;}
}

/* v1037: admin users table cleanup - prevent broken vertical text and keep table scrollable */
.admin-users-list-card{min-width:0;}
.admin-users-table-wrap{width:100%;overflow-x:auto;overflow-y:visible;border:1px solid var(--border);border-radius:14px;background:#fff;}
.admin-users-table{min-width:1180px;width:max-content;max-width:none;table-layout:auto;}
.admin-users-table th,.admin-users-table td{white-space:nowrap;word-break:normal!important;overflow-wrap:normal!important;vertical-align:middle;}
.admin-users-table td:nth-child(7),.admin-users-table td:nth-child(11){white-space:normal;min-width:150px;max-width:260px;}
.admin-users-table th{background:#f6f9fd;}
.admin-users-table .btn-small{white-space:nowrap;}
@media(max-width:1100px){.admin-users-table{min-width:1100px;}.admin-users-table-wrap{margin-top:8px;}}


/* v1043: nested tasks under projects/tickets */
.row-extra.always-open{display:table-row;background:#fbfdff;}
.nested-task-extra td{padding:0 !important;background:#fbfdff !important;}
.nested-task-panel{margin:0;width:100%;border-top:1px solid #e3edf7;background:#fbfdff;}
.nested-task-panel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 14px;font-weight:900;color:#062b4f;background:#f8fbff;border-bottom:1px solid #e7f0fa;}
.nested-task-panel>summary::-webkit-details-marker{display:none;}
.nested-task-panel>summary::before{content:'⌄';display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid #bdd6f1;border-radius:8px;background:#fff;color:#0b4f93;font-weight:900;}
.nested-task-panel:not([open])>summary::before{content:'›';}
.nested-task-list{display:grid;gap:0;padding:0;margin:0;}
.nested-task-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(140px,220px) 110px 120px;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid #edf3f9;text-align:left;}
.nested-task-row:last-child{border-bottom:0;}
.nested-task-empty{padding:12px 14px;text-align:left;}
.company-group .row-extra td,.company-group .nested-task-panel,.company-group .nested-task-list,.company-group .nested-task-row{margin-left:0;text-align:left;}
@media(max-width:820px){.nested-task-row{grid-template-columns:1fr}.nested-task-row>*{min-width:0}.nested-task-panel>summary{padding-left:12px}}


/* v1045: make calibration list rights clearly visible in user admin */
.calibration-rights-admin-card{
  border-color:#b8d6f4;
  background:linear-gradient(180deg,#f7fbff,#ffffff);
  box-shadow:0 10px 24px rgba(20,78,140,.07);
}
.calibration-rights-admin-card .compact-head{
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:space-between;
}
.calibration-rights-help{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:8px;
  margin-top:4px;
}
.calibration-rights-help span{
  display:block;
  border:1px solid #dbe8f6;
  background:#fff;
  border-radius:12px;
  padding:9px 10px;
  font-size:12px;
  color:#44617d;
}


/* v1047: visible calibration permission overview */
.calibration-group-rights-card,
.calibration-rights-overview-card{
  border-color:#b9d9f7;
  background:linear-gradient(180deg,#f7fbff,#fff);
}
.calibration-rights-overview-card .table td,
.calibration-rights-overview-card .table th{
  white-space:nowrap;
}


/* v1048: integrations cleanup */
.legacy-integration-card>summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#0b3768;
}
.legacy-integration-card>summary::-webkit-details-marker{display:none;}
.legacy-integration-card:not([open]){padding:16px 18px}
.graph-primary-card{border-color:#a9cdec;box-shadow:0 12px 28px rgba(18,87,155,.08)}
.optional-ms-login{margin-top:14px;background:#fbfdff}


/* v1050 usability */
.inline-check-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:8px 12px;
  padding:8px 0;
  max-height:220px;
  overflow:auto;
}
.inline-check-grid .check{
  border:1px solid #dbe8f6;
  border-radius:10px;
  padding:7px 9px;
  background:#fff;
}
.task-source-nav{
  background:#fff3db !important;
  color:#7a4b00 !important;
  border-color:#f0c46a !important;
}
.summary-card{
  text-decoration:none;
  color:inherit;
  display:block;
}
.summary-card:hover{
  border-color:#7fb0df;
  transform:translateY(-1px);
}


/* v1056: project overview tasks always visible */
.project-table-wrap .row-extra.project-task-overview-row{display:table-row;background:#fbfdff;}
.project-table-wrap:not(.show-extra) .project-task-overview-row .project-extra-info{display:none;}
.project-task-overview-row td{padding:0 0 10px 0 !important;}
.project-task-overview-row .nested-task-panel{border-top:1px solid #e3edf7;border-bottom:1px solid #e3edf7;}
.project-task-overview-row .nested-task-panel>summary{padding-left:14px;}


/* v1057 task context menu form controls */
.tf-context-menu form{margin:0;padding:0 2px 4px 2px}
.tf-context-menu .ctx-label{display:block;margin:6px 8px 4px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}
.tf-context-menu select{width:100%;border:1px solid var(--border-strong);border-radius:10px;padding:8px 10px;margin:0 0 4px 0;background:#fff;color:var(--text)}

/* v1060 task multi-select + admin delete */
.task-bulk-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px 0;padding:10px 12px;border:1px solid #d8e4f2;border-radius:14px;background:#fbfdff}
.task-bulk-toolbar strong{font-size:13px;color:#173b63;margin-right:4px}
.task-bulk-toolbar select{width:auto;min-width:180px;max-width:260px}
.select-col{width:34px;text-align:center;white-space:nowrap}
.select-col input[type="checkbox"]{width:16px;height:16px;cursor:pointer}
tr.selected-row{background:#eef6ff}
@media (max-width: 760px){
  .task-bulk-toolbar{align-items:stretch}
  .task-bulk-toolbar select,.task-bulk-toolbar .btn{width:100%;max-width:none}
  .select-col{width:28px}
}


/* v1066: stickybar actieve knop zichtbaar blauw op ticket/project/task detail */
.ticket-detail-sticky-shell .ticket-actions-row a.is-active,
.ticket-detail-sticky-shell .ticket-actions-row a.active,
.task-detail-sticky-shell .task-actions-row a.is-active,
.task-detail-sticky-shell .task-actions-row a.active,
.project-sticky-bar .group [data-open-panel].is-active,
.project-sticky-bar .group [data-open-panel].active {
  background: #eaf3ff !important;
  border-color: #9ebce2 !important;
  color: #0a4a8e !important;
  box-shadow: inset 0 0 0 1px #d6e7fb;
}
.ticket-detail-sticky-shell .ticket-actions-row button.is-active:not(.sticky-save-btn),
.task-detail-sticky-shell .task-actions-row button.is-active:not(.sticky-save-btn) {
  background: #eaf3ff !important;
  border-color: #9ebce2 !important;
  color: #0a4a8e !important;
}

/* v1067: merged calibration_addon.css unique rules */
.drop-zone.has-file{
  border-color:var(--success);
  background:#ecfdf3;
}
.drop-zone input[type=file]{
  max-width:360px;
}
.drop-title{
  color:var(--blue);
  font-size:18px;
  font-weight:800;
}
.drop-subtitle{
  color:var(--muted);
  font-size:13px;
}
.drop-filename{
  display:block;
  color:var(--success);
  font-size:13px;
}
.future-card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  background:#fbfcfe;
  max-width:720px;
}
.future-card h3{
  margin:0 0 8px;
  color:var(--blue);
}
.future-card p{
  margin:0 0 10px;
  color:var(--muted);
}
.future-card li{
  margin:5px 0;
}
@media(max-width:1100px){
  .excel-like-filters{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .excel-like-filters{grid-template-columns:1fr}
}

/* V2.6 UX cleanup: directe document-open, snelle drag/drop, opgeschoonde navigatie */
.clean-nav .brand small{font-size:12px}
.nav-dropdown{position:relative;display:inline-flex;align-items:center}
.nav-dropdown>button{border:0;background:transparent;color:#344054;font:inherit;font-weight:700;padding:10px 12px;border-radius:12px;cursor:pointer}
.nav-dropdown.active>button,.nav-dropdown:hover>button{background:#eef4ff;color:var(--blue)}
.nav-menu{display:none;position:absolute;right:0;top:42px;min-width:190px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px;z-index:20}
.nav-dropdown:hover .nav-menu,.nav-dropdown:focus-within .nav-menu{display:grid;gap:3px}
.nav-menu a{display:block;padding:9px 10px;border-radius:10px;color:#344054;text-decoration:none;white-space:nowrap;font-weight:600}
.nav-menu a:hover{background:#f2f4f7;color:var(--blue)}
.quick-drop-panel{border:1px solid #d0d5dd;background:#fff}
.quick-drop-form{display:grid;grid-template-columns:360px 1fr;gap:16px;align-items:start}
.quick-drop-zone{min-height:150px}
.quick-fields{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px}
.quick-fields label{font-size:13px;font-weight:700;color:#344054}
.quick-fields input{margin-top:6px}
.quick-actions{grid-column:2;justify-content:flex-start;margin-top:0}
.compact-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}
.compact-actions .small-link{margin-right:0}
.panel-title .subtle{display:block;margin-top:2px}
@media(max-width:1000px){.quick-drop-form{grid-template-columns:1fr}.quick-actions{grid-column:1}.quick-fields{grid-template-columns:1fr}.nav-menu{right:auto;left:0}}

/* V2.7 Smart Date Picker */
.date-quick-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.date-chip {
  border: 1px solid #d7dde8;
  background: #fff;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 12px;
  cursor: pointer;
  color: #27364a;
}
.date-chip:hover {
  background: #f3f6fb;
}
.primary-chip {
  border-color: #f0a23a;
  background: #fff7ed;
}

/* V2.8 Smart Filters */
.check-filter {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: #344054;
  font-size: 12.5px;
  font-weight: 700;
  white-space: nowrap;
}
.check-filter input {
  margin: 0;
}
.doc-cell a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #eef4ff;
  font-weight: 800;
}
.doc-cell a:hover {
  text-decoration: none;
  background: #dce8ff;
}
.doc-cell a[href*="sharepoint"],
.doc-cell a[href*="onedrive"] {
  background: #ecfdf3;
}
@media(max-width:1100px){
  .check-filter{justify-content:flex-start}
}

/* V1038 - kalibratie contextmenu, reminderconfig en SharePoint uitleg */
.calibration-context-row { cursor: context-menu; }
.cal-context-menu {
  position: fixed;
  z-index: 9999;
  min-width: 210px;
  display: none;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(16,24,40,.18);
}
.cal-context-menu.show { display: grid; gap: 2px; }
.cal-context-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 9px 10px;
  border-radius: 9px;
  text-align: left;
  color: var(--text);
  font: inherit;
  font-weight: 650;
  cursor: pointer;
}
.cal-context-menu button:hover { background: var(--blue-soft); color: var(--blue); }
.check-row { display: inline-flex; align-items: center; gap: 10px; }
.check-row input[type="checkbox"] { width: auto; }
.reminder-config-summary p { margin: 4px 0; }
.reminder-message-box {
  margin: 14px 0 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #f8fafc;
  white-space: pre-wrap;
  line-height: 1.45;
}
.info-box {
  border: 1px solid #bcd4f6;
  background: #f3f8ff;
  color: #12365f;
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 14px;
  line-height: 1.4;
}
.form-grid .wide { grid-column: 1 / -1; }

/* === v1068: betrouwbare personen-/groepenkeuze ===
   De oude checkbox-dropdown gebruikte absolute positionering. In project-/ticket-/taakpanelen
   werd de lijst daardoor op meerdere plekken afgesneden of over knoppen heen gelegd.
   Deze variant klapt inline open, zodat gebruikers en groepen overal echt selecteerbaar zijn. */
.field,
.card,
.project-actions-panel,
.ticket-detail-section-stack,
.task-detail-section-stack {
  overflow: visible;
}
.check-dropdown.clean-multiselect {
  position: relative;
  width: 100%;
  min-width: 0;
}
.check-dropdown.clean-multiselect[open] {
  z-index: 30;
}
.check-dropdown.clean-multiselect > summary {
  width: 100%;
  min-height: 44px;
  height: auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.check-dropdown.clean-multiselect.has-selection > summary {
  border-color: #1f66aa;
  background: #eef6ff;
  color: #062b4f;
}
.check-dropdown.clean-multiselect .check-dropdown-panel {
  position: static !important;
  left: auto !important;
  top: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  max-height: 260px;
  overflow: auto;
  margin-top: 8px;
  background: #fff;
  border: 1px solid #cfe0f0;
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.35), 0 8px 18px rgba(15,53,89,.08);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.check-dropdown.clean-multiselect .check-dropdown-panel:empty::before,
.inline-check-grid:empty::before {
  content: 'Geen opties beschikbaar';
  display: block;
  padding: 9px 10px;
  color: #6b7f98;
  font-weight: 700;
  font-size: 13px;
}
.check-dropdown.clean-multiselect .check-dropdown-panel label {
  width: 100% !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  cursor: pointer;
}
.check-dropdown.clean-multiselect .check-dropdown-panel input[type='checkbox'] {
  margin-top: 1px !important;
}
.check-dropdown.clean-multiselect .dropdown-empty {
  padding: 9px 10px;
  color: #6b7f98;
  font-weight: 700;
  font-size: 13px;
}
@media (max-width: 780px) {
  .check-dropdown.clean-multiselect .check-dropdown-panel {
    position: static !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-height: 220px;
  }
}


/* v1069: header dropdown, calibration tabs and project overview cleanup */
.auth-body .site-header{z-index:3000;}
.auth-body .header-user-auth{min-width:0;}
.auth-body .header-user-auth .user-menu{position:relative;max-width:220px;}
.auth-body .user-menu-summary{
  min-width:0!important;
  max-width:220px;
  padding:7px 10px!important;
  border-radius:14px;
  background:rgba(255,255,255,.10);
  box-sizing:border-box;
}
.auth-body .user-menu-summary .user-name,
.auth-body .user-menu-summary .user-meta{
  display:block;
  max-width:190px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.auth-body .header-user-auth .user-menu-panel{
  position:fixed!important;
  top:64px!important;
  right:var(--tf-header-pad-x, 28px)!important;
  left:auto!important;
  z-index:4000!important;
  width:min(300px,calc(100vw - 24px));
  min-width:0!important;
  max-width:min(300px,calc(100vw - 24px))!important;
}
.auth-body .header-user-auth .user-menu-panel::before{right:30px;}
.attach-simple.panel{overflow:visible;}
.attach-tabs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:10px 0 18px;
}
.attach-tabs .tab-btn{
  min-height:38px;
  padding:0 16px;
  border:1px solid #d8e4f2;
  border-radius:13px;
  background:#fff;
  color:#092b4d;
  font-weight:850;
  cursor:pointer;
}
.attach-tabs .tab-btn.active{
  background:#062b4f;
  border-color:#062b4f;
  color:#fff;
}
.projects-overview-table th:last-child,
.projects-overview-table td:last-child{width:auto!important;min-width:0!important;}
.projects-overview-table .sort-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#062b4f;
  text-decoration:none;
  font-weight:900;
}
.projects-overview-table .sort-link:hover{color:#0b5ea8;text-decoration:underline;}
.projects-overview-table .sort-link.active::after{content:'↓';font-size:11px;line-height:1;}
.projects-overview-table .sort-link.active.asc::after{content:'↑';}
.project-updated-col{width:160px;}
.project-updated-cell strong{display:block;color:#062b4f;white-space:nowrap;}
.project-updated-cell .muted{display:block;margin-top:2px;}
tr[data-project-row]{cursor:default;}
@media(max-width:720px){
  .auth-body .header-user-auth .user-menu-panel{top:58px!important;right:12px!important;}
  .attach-tabs{gap:6px;}
  .attach-tabs .tab-btn{flex:1 1 auto;min-width:120px;}
  .project-updated-col{width:140px;}
}

/* v1074: calibration module layout restored after single-CSS merge */
.calibration-page{
  display:block;
  width:100%;
}
.calibration-page .hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin:0 0 18px 0;
}
.calibration-page .hero.compact{margin-bottom:16px}
.calibration-page .hero h1,
.calibration-page .excel-toolbar h1{
  margin:0 0 6px 0;
  font-size:30px;
  line-height:1.12;
  letter-spacing:-.02em;
  color:#062b4f;
}
.calibration-page .hero p,
.calibration-page .excel-toolbar span{
  margin:0;
  color:var(--muted);
  font-size:15px;
}
.calibration-page .actions,
.calibration-page .hero-actions,
.calibration-page .compact-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.calibration-page .btn.slim{
  min-height:38px;
  padding:8px 13px;
  border-radius:11px;
  font-size:13px;
}
.calibration-page .kpi-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(145px,1fr));
  gap:14px;
  margin:0 0 18px 0;
}
.calibration-page .kpi{
  display:block;
  min-height:100px;
  padding:16px 18px;
  border:1px solid var(--border);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--shadow);
  color:var(--text);
  text-decoration:none;
  transition:.15s ease;
}
.calibration-page .kpi:hover{
  transform:translateY(-1px);
  border-color:#9fc0df;
  text-decoration:none;
}
.calibration-page .kpi span{
  display:block;
  color:var(--muted);
  font-size:13px;
  font-weight:800;
}
.calibration-page .kpi strong{
  display:block;
  margin-top:8px;
  font-size:34px;
  line-height:1;
  color:#0b4f93;
}
.calibration-page .kpi.danger{border-top:4px solid #b42318;background:#fff}
.calibration-page .kpi.warning{border-top:4px solid #b54708;background:#fff;color:var(--text)}
.calibration-page .kpi.notice{border-top:4px solid #d29a00;background:#fff;color:var(--text)}
.calibration-page .kpi.muted{border-top:4px solid #98a2b3;background:#fff;color:var(--text)}
.calibration-page .clickable-kpis .kpi.active{
  outline:2px solid #9fc0df;
  box-shadow:0 0 0 4px rgba(37,95,159,.10), var(--shadow);
}
.calibration-page .panel,
.calibration-page .excel-panel{
  background:#fff;
  border:1px solid var(--border);
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:18px;
  margin:0 0 18px 0;
}
.calibration-page .excel-panel{padding:0;overflow:hidden;border-radius:14px}
.calibration-page .panel.soft{background:#fbfdff}
.calibration-page .panel.muted{background:#fbfdff;color:var(--text)}
.calibration-page .panel-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin:0 0 14px 0;
}
.calibration-page .panel-title h2,
.calibration-page .panel h2{
  margin:0;
  color:#062b4f;
  font-size:22px;
  line-height:1.2;
}
.calibration-page .panel-title span{
  color:var(--muted);
  font-size:13px;
  white-space:nowrap;
}
.calibration-page .filters{
  display:grid;
  gap:10px;
  align-items:center;
  margin:0 0 16px 0;
}
.calibration-page .excel-like-filters{
  grid-template-columns:minmax(220px,1.2fr) auto repeat(5,minmax(120px,160px)) auto auto;
}
.calibration-page .excel-filters{
  grid-template-columns:minmax(240px,1fr) minmax(140px,180px) minmax(150px,180px) auto auto;
}
.calibration-page .filters.three{
  grid-template-columns:minmax(240px,1fr) auto auto;
}
.calibration-page .filters input,
.calibration-page .filters select,
.calibration-page .form-grid input,
.calibration-page .form-grid select,
.calibration-page .form-grid textarea,
.calibration-page input,
.calibration-page select,
.calibration-page textarea{
  min-height:42px;
  width:100%;
  border:1px solid var(--border-strong);
  border-radius:12px;
  padding:9px 12px;
  background:#fff;
  color:var(--text);
  font:inherit;
  box-shadow:none;
}
.calibration-page .check-filter{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 12px;
  border:1px solid var(--border-strong);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
}
.calibration-page .check-filter input{
  width:16px!important;
  height:16px!important;
  min-height:16px;
  padding:0;
}
.calibration-page .table-wrap{
  width:100%;
  overflow:auto;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
}
.calibration-page .excel-wrap{
  border:0;
  border-radius:14px;
  max-height:calc(100vh - 260px);
}
.calibration-page table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
}
.calibration-page .excel-table{
  min-width:1280px;
  font-size:12.5px;
}
.calibration-page th,
.calibration-page td{
  padding:10px 12px;
  border-bottom:1px solid var(--border);
  text-align:left;
  vertical-align:middle;
}
.calibration-page th{
  background:#f5f9fe;
  color:#24496d;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.02em;
  white-space:nowrap;
}
.calibration-page .excel-table thead th{
  position:sticky;
  top:0;
  z-index:2;
  padding:8px 10px;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border-strong);
  background:#f5f9fe;
  text-transform:none;
  letter-spacing:0;
}
.calibration-page .excel-table td{
  padding:7px 10px;
  border-right:1px solid #edf3fa;
  white-space:nowrap;
}
.calibration-page tbody tr:hover td{background:#f8fbff}
.calibration-page .sort-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  min-height:20px;
  color:#105492;
  font-weight:900;
  text-decoration:none;
}
.calibration-page .sort-head:hover{text-decoration:none;color:#063762}
.calibration-page .sort-head.active{color:#062b4f}
.calibration-page .sort-head span{font-size:11px;color:#d07a00}
.calibration-page .dot{
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:999px;
  margin-right:7px;
  vertical-align:middle;
}
.calibration-page .dot.danger{background:#b42318;color:inherit}
.calibration-page .dot.warning{background:#b54708;color:inherit}
.calibration-page .dot.notice{background:#d29a00;color:inherit}
.calibration-page .dot.success{background:#027a48;color:inherit}
.calibration-page .dot.muted{background:#98a2b3;color:inherit}
.calibration-page .status-text{font-size:12px;font-weight:700}
.calibration-page .doc-cell a,
.calibration-page .actions-cell a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:3px 9px;
  border-radius:999px;
  background:#eef5fb;
  color:#105492;
  font-weight:900;
  font-size:12px;
  text-decoration:none;
  white-space:nowrap;
}
.calibration-page .doc-cell a:hover,
.calibration-page .actions-cell a:hover{background:#dceaf8;text-decoration:none}
.calibration-page .actions-cell{white-space:nowrap}
.calibration-page .actions-cell a+a{margin-left:6px}
.calibration-page .missing{color:#8a9db2;font-weight:800}
.calibration-page .empty{
  text-align:center;
  color:var(--muted);
  padding:28px!important;
}
.calibration-page .excel-toolbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin:0 0 12px 0;
}
.calibration-page .form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(220px,1fr));
  gap:16px;
}
.calibration-page .form-grid.single{grid-template-columns:minmax(260px,520px)}
.calibration-page .form-grid label{font-weight:800;color:var(--text)}
.calibration-page .form-grid .wide{grid-column:1/-1}
.calibration-page .form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.calibration-page .detail-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
}
.calibration-page .details{
  display:grid;
  grid-template-columns:170px 1fr;
  gap:10px 16px;
}
.calibration-page .details dt{color:var(--muted);font-weight:800}
.calibration-page .details dd{margin:0;font-weight:800;overflow-wrap:anywhere}
.calibration-page .path{
  display:inline-block;
  max-width:360px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  vertical-align:bottom;
}
.calibration-page .wide-path{max-width:560px}
.calibration-page .subtle,
.calibration-page .hint{color:var(--muted);font-size:13px}
.calibration-page .badge{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.calibration-page .badge.danger{color:#b42318;background:#fee4e2}
.calibration-page .badge.warning{color:#b54708;background:#ffead5}
.calibration-page .badge.notice{color:#854d0e;background:#fef3c7}
.calibration-page .badge.success{color:#027a48;background:#dcfae6}
.calibration-page .badge.muted{color:#475467;background:#f2f4f7}
.calibration-page .attach-tabs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin:12px 0 18px 0;
}
.calibration-page .tab-btn{
  border:1px solid var(--border-strong);
  background:#fff;
  border-radius:12px;
  min-height:42px;
  padding:10px 16px;
  font-weight:900;
  color:#062b4f;
  cursor:pointer;
}
.calibration-page .tab-btn.active{background:#062b4f;color:#fff;border-color:#062b4f}
.calibration-page .tab-panel{display:none}
.calibration-page .tab-panel.active{display:block}
.calibration-page .drop-zone{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:170px;
  gap:8px;
  border:2px dashed #98a2b3;
  border-radius:16px;
  background:#f8fbff;
  transition:.15s ease;
  text-align:center;
  cursor:pointer;
}
.calibration-page .drop-zone:hover,
.calibration-page .drop-zone.drag-over{border-color:#d07a00;background:#fff7ec}
.calibration-page .drop-zone.has-file{border-color:#027a48;background:#ecfdf3}
.calibration-page .drop-title{color:#062b4f;font-size:18px;font-weight:900}
.calibration-page .drop-subtitle{color:var(--muted);font-size:13px}
.calibration-page .drop-filename{display:block;color:#027a48;font-size:13px;font-weight:800}
.calibration-page .result-row{
  display:grid;
  grid-template-columns:1.2fr 2fr auto;
  gap:12px;
  align-items:center;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px;
  background:#fff;
}
.calibration-page .compact-results{display:grid;gap:8px;margin-top:12px}
.calibration-page .preview-frame{width:100%;height:72vh;border:1px solid var(--border);border-radius:14px;background:#fff}
.calibration-page .image-preview{display:flex;justify-content:center;align-items:flex-start;background:#f8fafc;border:1px solid var(--border);border-radius:14px;padding:14px;min-height:420px}
.calibration-page .image-preview img{max-width:100%;height:auto;border-radius:10px;box-shadow:var(--shadow)}
.calibration-page .text-preview{max-height:72vh;overflow:auto;white-space:pre-wrap;background:#0b1220;color:#e5e7eb;border-radius:14px;padding:16px;font-size:13px;line-height:1.45}
@media(max-width:1100px){
  .calibration-page .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calibration-page .excel-like-filters,
  .calibration-page .excel-filters{grid-template-columns:1fr 1fr}
  .calibration-page .detail-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .calibration-page .hero,
  .calibration-page .excel-toolbar,
  .calibration-page .panel-title{display:block}
  .calibration-page .actions,
  .calibration-page .hero-actions,
  .calibration-page .compact-actions{justify-content:flex-start;margin-top:12px}
  .calibration-page .hero h1,
  .calibration-page .excel-toolbar h1{font-size:25px}
  .calibration-page .kpi-grid,
  .calibration-page .excel-like-filters,
  .calibration-page .excel-filters,
  .calibration-page .filters.three,
  .calibration-page .form-grid,
  .calibration-page .form-grid.single{grid-template-columns:1fr}
  .calibration-page .details{grid-template-columns:1fr}
  .calibration-page .excel-wrap{max-height:none}
  .calibration-page .path,.calibration-page .wide-path{max-width:240px}
}

/* v1076 - Admin gebruikers layout + veilig verwijderen */
.admin-users-layout{display:grid;grid-template-columns:minmax(420px,0.9fr) minmax(620px,1.1fr);gap:16px;align-items:start;width:100%;}
.admin-users-editor-card,.admin-users-list-card{min-width:0;max-width:100%;}
.admin-users-list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;}
.admin-users-list-head h3{margin:0;}
.admin-users-table-wrap{max-width:100%;max-height:calc(100vh - 260px);overflow:auto;border:1px solid var(--border);border-radius:14px;background:#fff;}
.admin-users-table{min-width:1500px;width:max-content;max-width:none;table-layout:auto;}
.admin-users-table th{position:sticky;top:0;z-index:2;background:#f6f9fd;}
.admin-users-table th:first-child,.admin-users-table td:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:8px 0 12px rgba(11,51,91,.04);}
.admin-users-table th:first-child{z-index:3;background:#f6f9fd;}
.admin-users-table th:last-child,.admin-users-table td:last-child{position:sticky;right:0;z-index:1;background:#fff;box-shadow:-8px 0 12px rgba(11,51,91,.04);}
.admin-users-table th:last-child{z-index:3;background:#f6f9fd;}
.admin-users-actions{display:flex;gap:6px;align-items:center;white-space:nowrap;}
.admin-users-actions .inline-form{display:inline-flex;margin:0;}
.admin-user-actions-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.admin-users-editor-card .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.admin-users-editor-card .row>.field{min-width:0;}
@media(max-width:1180px){.admin-users-layout{grid-template-columns:1fr}.admin-users-table-wrap{max-height:none}.admin-users-editor-card .row{grid-template-columns:1fr}}

/* v1077b - Admin gebruikers verwijderen via rechtermuisknop */
.admin-user-context-row{cursor:context-menu;}
.admin-user-context-row:hover td{background:#f7fbff;}
.admin-user-context-menu{position:fixed;z-index:99999;min-width:230px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 45px rgba(11,51,91,.18);padding:8px;}
.admin-user-context-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:10px;padding:10px 12px;font-weight:700;color:var(--text);cursor:pointer;}
.admin-user-context-menu button:hover{background:#eef5fc;}
.admin-user-context-menu button.danger{color:#b42318;}
.admin-user-context-menu button.danger:hover{background:#fdeceb;}
.admin-users-actions .inline-form, .admin-user-actions-panel form:has(input[name="action"][value="delete"]){display:none!important;}

/* v1078 - admin users: onderdeeltoegang verbergen + normale deleteknop */
.tf-hidden-onderdeeltoegang{display:none!important;}
.tf-user-delete-form{display:inline-flex!important;margin:0!important;}
.admin-users-actions{gap:8px;align-items:center;}
.admin-user-context-menu{display:none!important;}

/* v1082 - context delete menu */
.tf-context-delete-menu{
  position:fixed;
  z-index:999999;
  min-width:220px;
  background:#fff;
  border:1px solid var(--border,#d7e0ea);
  border-radius:14px;
  box-shadow:0 18px 45px rgba(11,51,91,.18);
  padding:8px;
}
.tf-context-delete-menu button{
  display:block;
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  border-radius:10px;
  padding:10px 12px;
  font-weight:700;
  color:var(--text,#102033);
  cursor:pointer;
}
.tf-context-delete-menu button:hover{background:#eef5fc;}
.tf-context-delete-menu button.danger{color:#b42318;}
.tf-context-delete-menu button.danger:hover{background:#fdeceb;}

/* v1083b - global context delete menu */
.tf-context-delete-menu{
  position:fixed;
  z-index:999999;
  min-width:230px;
  background:#fff;
  border:1px solid var(--border,#d7e0ea);
  border-radius:14px;
  box-shadow:0 18px 45px rgba(11,51,91,.18);
  padding:8px;
}
.tf-context-delete-menu button{
  display:block;
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  border-radius:10px;
  padding:10px 12px;
  font-weight:700;
  color:var(--text,#102033);
  cursor:pointer;
}
.tf-context-delete-menu button:hover{background:#eef5fc;}
.tf-context-delete-menu button.danger{color:#b42318;}
.tf-context-delete-menu button.danger:hover{background:#fdeceb;}
.tf-hidden-onderdeeltoegang{display:none!important;}

/* v1084 - delete toevoegen aan bestaande contextmenu's zonder ze te vervangen */
.tf-v1084-menu-divider{
  height:1px;
  background:rgba(15,23,42,.10);
  margin:6px 4px;
}
.tf-v1084-delete-option{
  display:block;
  width:100%;
  border:0;
  background:transparent;
  color:#b42318!important;
  text-align:left;
  padding:9px 12px;
  border-radius:9px;
  font-weight:700;
  cursor:pointer;
}
.tf-v1084-delete-option:hover{
  background:#fdeceb!important;
}

/* v1085 - small calibration reminder checkbox + clean disabled reply save */
.calibration-page .form-grid .check-row{
  grid-column:1/-1;
  display:inline-flex;
  align-items:center;
  justify-self:start;
  gap:10px;
  width:auto;
  min-height:auto;
}
.calibration-page .form-grid .check-row input[type='checkbox']{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  padding:0!important;
  margin:0!important;
  flex:0 0 auto;
}
button[data-ticket-reply-submit]:disabled{
  opacity:.45;
  cursor:not-allowed;
  pointer-events:none;
}
/* v1086 - admin users without section access column */
.admin-users-table{min-width:1250px;}
.admin-users-table td:nth-child(7){white-space:normal;min-width:180px;max-width:260px;}