:root{--navy:#083f7e;--navy2:#062f61;--blue:#0867df;--bg:#f3f6fb;--line:#e5ebf3;--text:#15263f;--muted:#6c7a8d;--green:#0a8d51;--greenbg:#eaf8f0;--red:#d82c35;--redbg:#fff0f1;--shadow:0 8px 28px rgba(12,44,84,.07)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Tahoma,Arial,sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;right:0;top:0;bottom:0;width:240px;background:linear-gradient(180deg,var(--navy2),var(--navy));color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:30}.brand-mark{width:46px;height:46px;border-radius:14px;background:#fff;color:var(--navy);display:grid;place-items:center;font-size:27px;font-weight:900}.brand-text{display:grid;gap:4px;margin:14px 3px 28px}.brand-text b{font-size:20px}.brand-text small{opacity:.7}.sidebar nav{display:grid;gap:8px}.sidebar nav a{padding:12px 14px;border-radius:10px;display:flex;gap:10px;align-items:center;color:#dbe8f8}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.13);color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.16);padding-top:16px;display:grid;gap:5px}.sidebar-user small{opacity:.7}.sidebar-user a{margin-top:8px;color:#dbe8f8;font-size:13px}.page-wrap{margin-right:240px;min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.topbar div{display:flex;gap:10px;align-items:baseline}.topbar small{color:var(--muted)}.menu-btn{display:none;border:0;background:none;font-size:24px}.page-wrap main{max-width:1420px;margin:auto;padding:30px}.public-main{min-height:100vh;padding:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h1{margin:0 0 7px;font-size:30px}.page-head p{margin:0;color:var(--muted)}.eyebrow{color:var(--blue);font-weight:bold;font-size:13px;margin-bottom:6px}.btn,.primary,.secondary,.danger-btn,.small-btn{border:0;border-radius:10px;padding:11px 16px;cursor:pointer;font-weight:bold;display:inline-block;text-align:center}.primary,.btn.primary{background:var(--blue);color:#fff}.secondary,.btn.secondary{background:#edf3fa;color:#204b7b}.danger-btn{background:var(--redbg);color:var(--red)}.small-btn{padding:7px 10px;background:#edf3fa;color:#204b7b}.flash{padding:13px 15px;border-radius:11px;margin-bottom:18px;border:1px solid}.flash.success{background:var(--greenbg);color:#087744;border-color:#caecd9}.flash.error{background:var(--redbg);color:#b42129;border-color:#f1c7ca}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:#fff;padding:20px;border-radius:16px;box-shadow:var(--shadow);border:1px solid #eef2f7}.stat-card span{display:block;color:var(--muted);margin-bottom:10px}.stat-card strong{display:block;font-size:26px}.stat-card small{display:block;color:#95a0af;margin-top:8px}.stat-card.success strong,.money-green{color:var(--green)}.stat-card.danger strong,.money-red{color:var(--red)}.panel{background:#fff;border:1px solid #edf1f6;border-radius:16px;padding:20px;box-shadow:var(--shadow)}.panel-title{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.panel-title h2{margin:0;font-size:20px}.muted{color:var(--muted)}.layout-two{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(0,1.55fr);gap:18px}.customer-layout{grid-template-columns:minmax(300px,.62fr) minmax(0,1.75fr)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:bold;font-size:13px;color:#40536b}.field input,.field select,.field textarea,.search-bar input{width:100%;border:1px solid #dce4ee;border-radius:10px;padding:12px;background:#fff;color:var(--text);outline:none}.field input:focus,.field select:focus,.field textarea:focus,.search-bar input:focus{border-color:#8bb8ef;box-shadow:0 0 0 3px #eaf3ff}.field select[multiple]{min-height:112px}.hint{color:var(--muted);font-size:12px}.search-bar{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:12px}.subnav{display:flex;gap:8px;margin-bottom:14px}.subnav a{padding:7px 11px;border-radius:999px;background:#f0f4f8;color:#5d6b7d;font-size:13px}.subnav a.active{background:#e7f1ff;color:#0a60c8}.customer-list{display:grid}.customer-row{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:14px 4px;border-top:1px solid #eff3f7}.customer-row:first-child{border-top:0}.customer-row:hover{background:#fafcff}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#eaf2fd;color:#0a58b4;font-weight:900}.customer-main{display:grid;gap:4px}.customer-main span,.customer-main small,.user-row span,.user-row small{color:var(--muted)}.customer-balance{text-align:left;display:grid;gap:3px}.customer-balance.negative strong{color:var(--red)}.customer-balance.positive strong{color:var(--green)}.customer-balance span{font-size:12px;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:right;padding:12px 10px;border-bottom:1px solid #edf1f5;white-space:nowrap}th{font-size:13px;color:#5d6b7d;background:#fbfcfe}td{font-size:14px}.table-link{font-weight:bold;color:#155eaa}.badge{padding:5px 9px;border-radius:999px;font-size:12px;display:inline-block}.badge.pay,.active-badge{background:var(--greenbg);color:var(--green)}.badge.debt,.inactive-badge{background:var(--redbg);color:var(--red)}.empty{text-align:center;color:var(--muted);padding:26px!important}.info-box{display:grid;gap:5px;background:#f7f9fc;padding:13px;border-radius:10px;margin-top:16px}.info-box span{color:var(--muted)}.details-panel{display:grid;grid-template-columns:1fr 2fr;gap:20px;margin-top:18px}.details-panel div{display:grid;gap:6px}.details-panel span{color:var(--muted);white-space:pre-wrap}.narrow-panel{max-width:850px}.narrow-panel hr{border:0;border-top:1px solid var(--line);margin:26px 0}.user-list{display:grid}.user-row{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:14px 0;border-top:1px solid #edf1f5}.user-row:first-child{border-top:0}.user-row>div:nth-child(2){display:grid;gap:4px}.user-status{display:flex;align-items:center;gap:8px}.user-status form{margin:0}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:linear-gradient(135deg,#062e5d 0%,#07509b 55%,#0b6ad0 100%)}.login-hero{color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px}.login-logo{width:86px;height:86px;border-radius:26px;background:#fff;color:var(--navy);display:grid;place-items:center;font-size:50px;font-weight:900;box-shadow:0 20px 70px rgba(0,0,0,.2)}.login-hero h1{font-size:42px;margin:24px 0 6px}.login-hero p{font-size:18px;opacity:.8}.login-card{background:#fff;margin:auto;width:min(430px,86%);padding:34px;border-radius:20px;box-shadow:0 25px 80px rgba(3,24,52,.28)}.login-card h2{font-size:28px;margin:0 0 8px}.login-card form{display:grid;gap:10px;margin-top:20px}.login-card label{font-size:13px;font-weight:bold;color:#40536b}.login-card input{padding:13px;border:1px solid #dae3ee;border-radius:10px}.demo-box{margin-top:20px;background:#f5f8fc;border-radius:10px;padding:12px;display:grid;gap:3px;color:#5c6c80;font-size:12px}.demo-box b{color:#2c405b}.error-page{text-align:center;padding:12vh 20px}.error-page strong{font-size:70px;color:var(--blue)}.error-page h1{font-size:24px;margin:12px 0 28px}
@media(max-width:980px){.sidebar{transform:translateX(100%);transition:.2s}.menu-open .sidebar{transform:translateX(0)}.page-wrap{margin-right:0}.menu-btn{display:block}.topbar{padding:0 16px}.page-wrap main{padding:20px 14px}.stat-grid{grid-template-columns:1fr 1fr}.layout-two,.customer-layout{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-hero{min-height:34vh}.login-card{margin:-24px auto 40px;z-index:2}.details-panel{grid-template-columns:1fr}}
@media(max-width:620px){.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:25px}.stat-grid,.stat-grid.three{grid-template-columns:1fr 1fr}.stat-card{padding:16px}.stat-card strong{font-size:20px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.customer-row{grid-template-columns:auto 1fr}.customer-balance{grid-column:2;text-align:right}.user-row{grid-template-columns:auto 1fr}.user-status{grid-column:2}.login-hero h1{font-size:32px}.login-card{padding:24px}}
.wide-info{margin:0 0 18px 0}.narrow-panel{max-width:720px}.inline-btn{display:inline-block;text-decoration:none}.stat-card small{display:block;margin-top:6px;color:#7b8799;font-size:12px}

.badge.payout{background:#fff4e5;color:#a55b00}

/* v0.7 */
.customer-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:start}
.customer-ops{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.op-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:bold;background:#f2f5f9;color:#516174;border:1px solid #e4eaf2}
.op-chip.payment{background:var(--greenbg);color:var(--green);border-color:#d4efdf}
.op-chip.payout{background:#fff4e5;color:#a55b00;border-color:#f5dfbd}
.op-chip.debt{background:var(--redbg);color:var(--red);border-color:#f2d5d8}
.no-ops{font-size:11px;color:#98a3b1}
.filter-panel{margin-bottom:18px}.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.filter-actions{display:flex;gap:8px;align-items:center}.filter-actions .btn,.filter-actions button{flex:1}.report-stats{margin-top:18px}
@media(max-width:1100px){.filter-grid{grid-template-columns:1fr 1fr}.filter-actions{grid-column:1/-1}}
@media(max-width:620px){.filter-grid{grid-template-columns:1fr}.filter-actions{grid-column:auto}.customer-row{grid-template-columns:auto 1fr}.customer-balance{grid-column:2}.customer-ops{margin-top:8px}}

/* v0.8 exports and receipts */
.page-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.export-actions{display:flex;gap:8px;align-items:center}.export-btn{border:0;border-radius:10px;padding:11px 18px;font-weight:bold;cursor:pointer}.export-btn.excel{background:#e8f6ee;color:#087744}.export-btn.pdf{background:#fff0f1;color:#b42129}.voucher-link{color:#0a60c8;font-weight:bold;text-decoration:underline;text-decoration-color:#b9d4f4;text-underline-offset:3px}.voucher-link:hover{color:#083f7e}.filter-grid .export-actions{align-self:end}
@media(max-width:620px){.page-actions{width:100%}.page-actions .btn{flex:1}.export-actions{width:100%}.export-actions button{flex:1}}

/* v0.9 customer list summary */
.customer-summary{display:grid;grid-template-columns:repeat(3,minmax(125px,1fr));gap:8px;min-width:465px}
.customer-summary>div{background:#f8fafc;border:1px solid #edf1f6;border-radius:10px;padding:9px 11px;display:grid;gap:4px;text-align:center}
.customer-summary span{font-size:11px;color:var(--muted);white-space:nowrap}
.customer-summary strong{font-size:15px;white-space:nowrap}
@media(max-width:900px){.customer-row{grid-template-columns:auto 1fr}.customer-summary{grid-column:2;min-width:0;width:100%;grid-template-columns:repeat(3,1fr);margin-top:5px}}
@media(max-width:620px){.customer-summary{grid-template-columns:1fr}.customer-summary>div{grid-template-columns:1fr auto;align-items:center;text-align:right}.customer-summary strong{text-align:left}}

/* v1.0 */
.logo-mark{overflow:hidden;padding:5px}.logo-mark img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.logo-preview{width:130px;height:90px;border:1px solid var(--line);border-radius:12px;background:#fff;display:grid;place-items:center;padding:8px}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.dashboard-section{margin-top:18px}.section-title{margin:24px 0 12px}.backup-note{font-size:12px;color:var(--muted)}

/* v1.2 corrections */
.danger-btn{border:1px solid #f0c8cc}.field .hint{line-height:1.5}

/* v1.3 production preparation / PWA */
.topbar-brand{display:flex;gap:10px;align-items:baseline}.install-app-btn{margin-right:auto;border:1px solid #cfe0f4;background:#eef5fd;color:#0a58b4;border-radius:9px;padding:8px 12px;font-weight:bold;cursor:pointer}.install-app-btn:hover{background:#e2eefc}
@media(max-width:620px){.install-app-btn{font-size:12px;padding:7px 9px}.topbar-brand b{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}


/* v1.5 - mobile responsiveness hardening */
html,body{width:100%;max-width:100%;overflow-x:hidden}
body.menu-open{overflow:hidden}
.app-shell,.page-wrap,.page-wrap main,.panel,.layout-two,.customer-layout,.form-grid,.stat-grid,.page-head,.page-actions{min-width:0;max-width:100%}
.layout-two>*,.customer-layout>*,.form-grid>*,.stat-grid>*,.page-head>*,.page-actions>*{min-width:0}
.page-wrap{overflow-x:clip}
.field input,.field select,.field textarea,.search-bar input{min-width:0;max-width:100%}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.table-wrap table{max-width:none}
.sidebar-backdrop{display:none}
@media(max-width:980px){
  .sidebar{width:min(82vw,300px);transform:translateX(105%);box-shadow:-18px 0 45px rgba(5,31,63,.28);overflow-y:auto;overscroll-behavior:contain}
  .menu-open .sidebar{transform:translateX(0)}
  .sidebar-backdrop{display:block;position:fixed;inset:0;border:0;padding:0;background:rgba(5,26,51,.42);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease;z-index:29}
  .menu-open .sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  .page-wrap{width:100%;margin-right:0}
  .topbar{width:100%}
  .layout-two,.customer-layout{width:100%;grid-template-columns:minmax(0,1fr)}
  .panel{width:100%;overflow:hidden}
  .form-panel{overflow:visible}
  .details-panel{width:100%;grid-template-columns:1fr}
}
@media(max-width:620px){
  .page-wrap main{padding:14px 10px 24px}
  .topbar{height:58px;padding:0 10px;gap:8px}
  .topbar-brand{min-width:0}
  .topbar-brand b{font-size:14px;max-width:120px}
  .topbar small{font-size:11px}
  .page-head{width:100%;gap:12px}
  .page-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .page-actions .btn{width:100%;padding:10px 8px}
  .stat-grid,.stat-grid.three{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stat-card{min-width:0;padding:14px 12px}
  .stat-card span{font-size:12px}
  .stat-card strong{font-size:19px;word-break:break-word}
  .form-grid{width:100%;grid-template-columns:minmax(0,1fr)}
  .field,.field.full{width:100%;grid-column:auto}
  .field input,.field select,.field textarea{font-size:16px}
  .panel{padding:14px 12px;border-radius:14px}
  .panel-title{align-items:flex-start}
  .panel-title h2{font-size:18px}
  .table-wrap{margin-inline:-2px;padding-bottom:4px}
  table{min-width:690px}
  th,td{padding:10px 8px;font-size:12px}
  .customer-summary{width:100%;min-width:0}
}
@media(max-width:390px){
  .stat-grid,.stat-grid.three{grid-template-columns:1fr}
  .page-actions{grid-template-columns:1fr}
  .sidebar{width:min(88vw,300px)}
}

/* v1.6 - quick payment from dashboard */
.dashboard-actions{display:flex;gap:8px;align-items:center}
.quick-entry-dialog{border:0;padding:0;background:transparent;width:min(620px,calc(100vw - 28px));max-width:620px;overflow:visible}
.quick-entry-dialog::backdrop{background:rgba(4,25,50,.55);backdrop-filter:blur(2px)}
.quick-entry-card{background:#fff;border-radius:18px;padding:22px;box-shadow:0 28px 80px rgba(3,24,52,.28);max-height:min(88vh,760px);overflow:auto}
.quick-entry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}
.quick-entry-head h2{margin:0 0 5px;font-size:23px}
.quick-entry-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.quick-close{border:0;background:#eef3f9;color:#315579;width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:24px;line-height:1;flex:0 0 auto}
.quick-entry-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
.quick-entry-actions .btn{min-width:135px}
.quick-customer-field input{font-weight:600}
@media(max-width:620px){
  .dashboard-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .dashboard-actions .btn{width:100%;padding-inline:8px}
  .quick-entry-dialog{width:calc(100vw - 16px);max-width:none;margin:auto}
  .quick-entry-card{padding:16px 12px;border-radius:16px;max-height:92vh}
  .quick-entry-head h2{font-size:20px}
  .quick-entry-actions{display:grid;grid-template-columns:1fr 1fr}
  .quick-entry-actions .btn{min-width:0;width:100%}
}
@media(max-width:390px){
  .dashboard-actions{grid-template-columns:1fr}
}

/* v1.7 - WhatsApp payment sharing + inline report viewing */
.toggle-setting{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;cursor:pointer}
.toggle-setting input{width:20px;height:20px;accent-color:#0b65d8;flex:0 0 auto}
.toggle-setting span{font-weight:600;color:#314760}
.share-payment-wrap{min-height:62vh;display:grid;place-items:center;padding:20px 0}
.share-payment-card{width:min(620px,100%);text-align:center;padding:30px}
.share-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:var(--greenbg);color:var(--green);font-size:30px;font-weight:800}
.share-payment-card h1{margin:0 0 6px;font-size:28px}
.share-payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;text-align:right}
.share-payment-summary>div{display:grid;gap:5px;background:#f7f9fc;border:1px solid var(--line);border-radius:12px;padding:13px}
.share-payment-summary span{font-size:12px;color:var(--muted)}
.share-payment-summary strong{font-size:17px;color:#17324f}
.share-question-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.share-question-actions.one{grid-template-columns:1fr}
.whatsapp-btn{background:#1faa59;color:#fff;border-color:#1faa59}
.whatsapp-btn:hover{background:#168b48;color:#fff}
.warning-box{margin-top:18px;text-align:right;background:#fff8e6;border-color:#f3d78a}
@media(max-width:620px){.share-payment-wrap{padding:4px 0}.share-payment-card{padding:20px 14px}.share-payment-card h1{font-size:23px}.share-payment-summary{grid-template-columns:1fr}.share-question-actions{grid-template-columns:1fr}}


/* v1.8 - mobile-safe customer autocomplete for quick entry */
.quick-customer-field{position:relative}
.quick-customer-results{margin-top:7px;border:1px solid #cdd9e8;border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(16,53,93,.14);max-height:240px;overflow-y:auto;overscroll-behavior:contain;padding:5px;z-index:5}
.quick-customer-results[hidden]{display:none!important}
.quick-customer-option{display:block;width:100%;border:0;border-bottom:1px solid #edf1f6;background:#fff;color:var(--text);padding:12px 10px;text-align:right;cursor:pointer;border-radius:8px;font:inherit;font-weight:700}
.quick-customer-option[hidden]{display:none!important}
.quick-customer-option:last-of-type{border-bottom:0}
.quick-customer-option:hover,.quick-customer-option:focus-visible,.quick-customer-option.is-active{background:#eef5ff;outline:none}
.quick-customer-empty{padding:16px;text-align:center;color:var(--muted);font-size:13px}
@media(max-width:620px){
  .quick-customer-results{max-height:190px;border-radius:10px;box-shadow:none;background:#f8fbff}
  .quick-customer-option{padding:13px 9px;font-size:15px}
}

/* v1.9 - explicit WhatsApp app chooser */
.whatsapp-business-btn{background:#0b7b62;color:#fff;border-color:#0b7b62}
.whatsapp-business-btn:hover{background:#086650;color:#fff}
.whatsapp-choice-title{margin:14px 0 7px;color:#52657a;font-weight:700}
.whatsapp-choice-actions{grid-template-columns:1fr 1fr}
@media(max-width:620px){.whatsapp-choice-actions{grid-template-columns:1fr 1fr}.whatsapp-choice-actions .btn{padding:12px 8px;font-size:14px}}

/* v1.9.3 - public OAuth / privacy pages */
.login-legal-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:#55708f}
.login-legal-links a:hover{text-decoration:underline;color:var(--blue)}
.public-info-shell{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#f8fbff 0%,#eef4fb 100%)}
.public-info-topbar{min-height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px max(20px,calc((100vw - 1080px)/2))}
.public-brand{display:flex;align-items:center;gap:11px;min-width:0}
.public-brand-mark{width:42px;height:42px;flex:0 0 auto;border-radius:13px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:900}
.public-brand>span:last-child{display:grid;gap:2px}.public-brand b{font-size:17px}.public-brand small{font-size:11px;color:var(--muted)}
.public-info-page{width:min(100% - 28px,1080px);margin:38px auto;flex:1}
.public-info-card{background:#fff;border:1px solid #e6edf5;border-radius:20px;box-shadow:var(--shadow);padding:clamp(22px,4vw,48px)}
.public-info-card>h1{font-size:clamp(28px,4vw,42px);margin:2px 0 10px}.public-info-lead{font-size:17px;line-height:1.9;color:#52657a;margin:0 0 28px;max-width:900px}
.public-info-section{padding:20px 0;border-top:1px solid var(--line)}.public-info-section h2{font-size:20px;margin:0 0 9px}.public-info-section p{margin:0;color:#465c75;line-height:2}
.english-block{margin-top:8px;background:#f8fafc;border:1px solid #edf1f6;border-radius:13px;padding:18px;text-align:left}.english-block p{line-height:1.75}
.public-info-footer{width:min(100% - 28px,1080px);margin:0 auto 22px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#6d7c8f;font-size:12px}.public-info-footer nav{display:flex;gap:16px;flex-wrap:wrap}.public-info-footer a:hover{color:var(--blue);text-decoration:underline}
@media(max-width:620px){.public-info-topbar{padding:10px 12px}.public-brand small{display:none}.public-info-page{margin:18px auto}.public-info-card{padding:20px 16px;border-radius:16px}.public-info-lead{font-size:15px}.public-info-section h2{font-size:18px}.public-info-footer{align-items:flex-start;flex-direction:column}.public-info-footer nav{gap:12px}}

/* v1.9.4 - production backup dashboard */
.backup-head-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.backup-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}
.backup-status-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;gap:7px;box-shadow:var(--shadow)}
.backup-status-card span{font-size:12px;color:var(--muted);font-weight:700}.backup-status-card strong{font-size:21px;color:#17324f}.backup-status-card small{font-size:11px;color:#6e7f92;line-height:1.6;overflow-wrap:anywhere}
.backup-status-card.ok{border-top:4px solid #20a162}.backup-status-card.ok strong{color:#147a4b}.backup-status-card.warn{border-top:4px solid #e3a220}.backup-status-card.bad{border-top:4px solid #d84a4a}.backup-status-card.bad strong{color:#b52d2d}
.backup-latest-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.backup-latest-item{border:1px solid var(--line);background:#f8fafc;border-radius:13px;padding:14px;display:grid;gap:6px;min-width:0}.backup-latest-item span{font-size:12px;color:var(--muted)}.backup-latest-item b{font-size:14px;overflow-wrap:anywhere}.backup-latest-item small{font-size:11px;color:#6c7b8d;overflow-wrap:anywhere}.backup-safety-panel p{line-height:1.85;margin:8px 0}.backup-unavailable{border-inline-start:4px solid #e3a220}
@media(max-width:900px){.backup-status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.backup-head-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.backup-head-actions .btn{width:100%}.backup-status-grid,.backup-latest-grid{grid-template-columns:1fr}.backup-status-card{padding:14px}.backup-status-card strong{font-size:19px}}
/* v2 DEV scheduling */
.v2-dev-badge{background:#fff4cc;color:#7c5d00;border:1px solid #f1d770;padding:9px 13px;border-radius:999px;font-weight:700;font-size:13px}
.v2-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.v2-action{display:grid;gap:9px;transition:.15s}.v2-action:hover{transform:translateY(-2px);border-color:#bdd7f8}.v2-action b{font-size:17px}.v2-action span{color:var(--muted);line-height:1.6;font-size:13px}
.v2-resource-card{border:1px solid #e6edf5;border-radius:13px;padding:14px;margin-bottom:12px;background:#fbfdff}.v2-resource-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.v2-resource-head>div{display:grid;gap:4px}.v2-resource-head small{color:var(--muted)}.v2-chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.v2-chips>span{display:inline-flex;gap:5px;align-items:center;background:#edf5ff;color:#164c85;padding:6px 9px;border-radius:999px;font-size:12px}.chip-x{border:0;background:none;color:#a1222d;font-weight:900;cursor:pointer;padding:0 2px}.v2-inline-form,.v2-block-form{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:8px;margin-top:10px}.v2-block-form{grid-template-columns:1fr 1fr 1fr 1fr 1.4fr auto}.v2-inline-form input,.v2-inline-form select,.v2-block-form input{border:1px solid #dce4ee;border-radius:8px;padding:8px;min-width:0}.v2-resource-card details{margin-top:10px}.v2-resource-card summary{cursor:pointer;color:#40536b;font-size:13px}.v2-status-form{display:flex;gap:5px}.v2-status-form .small-btn,.v2-status-form .danger-btn{padding:7px 8px;font-size:12px}.v2-slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.v2-slot{border:1px solid #dde7f2;border-radius:13px;padding:12px;display:grid;gap:5px;background:#fbfdff}.v2-slot>b{font-size:12px;color:var(--muted)}.v2-slot>strong{font-size:22px;color:#0b5fb9}.v2-slot>span{font-weight:700}.v2-slot>small{color:var(--muted)}.v2-slot>button{margin-top:5px;padding:8px}
@media(max-width:980px){.v2-action-grid,.v2-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v2-block-form{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.v2-action-grid,.v2-slot-grid{grid-template-columns:1fr}.v2-inline-form,.v2-block-form{grid-template-columns:1fr 1fr}.v2-inline-form button,.v2-block-form button{grid-column:1/-1}.v2-resource-head{align-items:flex-start}}

/* v2 dev.2 — opleidingen */
.v2-mini-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.v2-mini-stats>span{background:#f3f7fb;border:1px solid #dce7f1;border-radius:999px;padding:6px 10px;font-size:.88rem}.v2-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:8px}.v2-check{display:flex;gap:10px;align-items:flex-start;border:1px solid #dce7f1;border-radius:12px;padding:10px;background:#fff;cursor:pointer}.v2-check input{margin-top:4px;width:18px;height:18px}.v2-check span{display:flex;flex-direction:column;gap:2px}.v2-check small{color:#667085}.v2-switch{display:flex;align-items:flex-start;gap:12px;border:1px solid #cfe0f1;border-radius:14px;padding:12px;background:#f8fbff;cursor:pointer}.v2-switch input{width:19px;height:19px;margin-top:3px}.v2-switch span{display:flex;flex-direction:column;gap:3px}.v2-switch small{color:#667085}.v2-effective-box{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border:1px solid #b9d7f5;background:#eef7ff;border-radius:14px;padding:12px}.v2-effective-box b{width:100%}.v2-effective-box span{background:white;border-radius:999px;padding:6px 10px}.v2-slot em{font-style:normal;font-weight:700;color:#0f6b3b}

/* v2 dev.3 — calendar UX */
.v2-calendar-toolbar{display:grid;gap:14px;margin-bottom:18px}.v2-calendar-toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.v2-view-switch{display:inline-flex;border:1px solid #d8e3ef;border-radius:11px;overflow:hidden;background:#f8fbff}.v2-view-switch a{padding:9px 16px;color:#4f647b;font-weight:800;border-inline-start:1px solid #e4ebf3}.v2-view-switch a:first-child{border-inline-start:0}.v2-view-switch a.active{background:#0b63ce;color:#fff}.v2-calendar-nav{display:flex;gap:7px}.v2-calendar-filters{display:grid;grid-template-columns:1.1fr 1fr 1fr auto;gap:10px;align-items:end}.v2-calendar-filters .field{margin:0}.v2-filter-button button{min-height:42px}.v2-period-title{display:flex;align-items:center;gap:12px;justify-content:center;background:#f4f8fd;border:1px solid #e1eaf4;border-radius:12px;padding:10px}.v2-period-title b{font-size:17px;color:#173d69}.v2-period-title span{color:#718095;font-size:13px}
.v2-calendar-panel{padding:12px}.v2-calendar-scroll{overflow-x:auto;padding-bottom:7px}.v2-week-board{display:grid;grid-template-columns:repeat(var(--day-count),minmax(310px,1fr));gap:9px;min-width:max-content;direction:rtl}.v2-week-board.is-day{grid-template-columns:minmax(620px,1fr);min-width:0}.v2-calendar-day{border:1px solid #dfe8f2;border-radius:14px;background:#fbfdff;overflow:hidden;min-width:310px}.v2-calendar-day.today{border:2px solid #2a79d7}.v2-day-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:10px 12px;background:#edf5ff;border-bottom:1px solid #dbe7f5}.v2-day-head b{font-size:15px;color:#153d6d}.v2-day-head span{font-weight:800;color:#3c5878}.v2-day-head small{grid-column:1/-1;color:#73849a;font-size:11px}.v2-day-trainers{display:grid;grid-template-columns:repeat(var(--trainer-count),minmax(145px,1fr));min-width:max-content}.v2-trainer-column{border-inline-start:1px solid #e7edf4;min-height:290px;background:#fff}.v2-trainer-column:first-child{border-inline-start:0}.v2-trainer-head{display:flex;align-items:center;gap:7px;padding:9px;background:#f9fbfd;border-bottom:1px solid #edf1f5;position:sticky;top:0}.v2-trainer-head b{font-size:12px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-avatar{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;background:#497db6;flex:0 0 auto}.trainer-color-1 .v2-avatar{background:#8d67b2}.trainer-color-2 .v2-avatar{background:#ca7d35}.trainer-color-3 .v2-avatar{background:#3a9470}.trainer-color-4 .v2-avatar{background:#b4526d}.trainer-color-5 .v2-avatar{background:#697d40}.v2-work-windows{padding:6px 8px;display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px dashed #e5ebf2}.v2-work-windows span{font-size:10px;background:#eaf7ef;color:#237046;border-radius:999px;padding:3px 6px}.v2-work-windows .off{background:#f3f3f3;color:#8b8b8b}.v2-booking-stack{padding:7px;display:grid;gap:6px}.v2-booking-card{border:0;border-inline-start:4px solid #2c85dd;background:#e8f3ff;border-radius:8px;padding:8px;text-align:right;cursor:pointer;display:grid;gap:2px;color:#17334f;font:inherit}.v2-booking-card:hover{filter:brightness(.985);transform:translateY(-1px)}.v2-booking-card strong{font-size:11px}.v2-booking-card span{font-size:12px;font-weight:800}.v2-booking-card small{font-size:9px;color:#61778f}.v2-booking-card.status-completed{background:#e8f7ee;border-color:#34a66b}.v2-booking-card.status-cancelled_free,.v2-booking-card.status-cancelled_student_free,.v2-booking-card.status-cancelled_charged{background:#fff0f0;border-color:#d85b5b;opacity:.72}.v2-no-booking{color:#bac4d0;text-align:center;padding:18px 0}.v2-day-empty{padding:28px 14px;text-align:center;color:#8795a6}.v2-calendar-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:10px;padding:0 4px;color:#607388;font-size:12px}.v2-calendar-legend span{display:flex;gap:5px;align-items:center}.v2-calendar-legend small{margin-inline-start:auto}.lg{width:11px;height:11px;border-radius:3px;display:inline-block}.lg.booked{background:#e8f3ff;border:1px solid #2c85dd}.lg.completed{background:#e8f7ee;border:1px solid #34a66b}.lg.cancelled{background:#fff0f0;border:1px solid #d85b5b}
.v2-month-grid{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:7px}.v2-month-day{min-height:130px;border:1px solid #e0e8f1;border-radius:11px;padding:9px;background:#fff;color:#263f5b;display:grid;grid-template-columns:1fr auto;grid-auto-rows:min-content;gap:2px 6px}.v2-month-day:hover{border-color:#93bcea;background:#f8fbff}.v2-month-day.today{outline:2px solid #2b7bd6}.v2-month-day>b{font-size:18px}.v2-month-day>span{font-size:10px;color:#78889b}.v2-month-day>strong{grid-column:2;font-size:18px;color:#1669c8}.v2-month-day>small{grid-column:2;font-size:9px;color:#7c8999}.v2-month-day>em{grid-column:1/-1;font-style:normal;font-size:9px;background:#eef5fc;border-radius:5px;padding:3px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v2-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.v2-booking-dialog{border:0;padding:0;border-radius:16px;width:min(720px,94vw);box-shadow:0 28px 80px rgba(17,45,77,.25)}.v2-booking-dialog::backdrop{background:rgba(14,32,51,.45)}.v2-dialog-card{padding:20px;background:#fff}.dialog-close{border:0;background:#eef2f6;width:34px;height:34px;border-radius:50%;font-size:22px;cursor:pointer}
@media(max-width:900px){.v2-calendar-filters{grid-template-columns:1fr 1fr}.v2-filter-button{grid-column:1/-1}.v2-month-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}}
@media(max-width:620px){.v2-calendar-toolbar-row{align-items:stretch}.v2-view-switch,.v2-calendar-nav{width:100%;display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.v2-calendar-filters{grid-template-columns:1fr}.v2-filter-button{grid-column:auto}.v2-period-title{flex-direction:column;gap:3px}.v2-week-board,.v2-week-board.is-day{grid-template-columns:repeat(var(--day-count),minmax(285px,1fr));min-width:max-content}.v2-month-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.v2-calendar-legend small{margin-inline-start:0;width:100%}}

/* v2 dev.3 — student weekly availability */
.student-week-panel{overflow:hidden}.student-week-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.student-week-head h2{margin:0 0 4px}.student-week-head span{font-size:12px;color:#708096}.student-week-nav{display:flex;gap:7px}.student-week-grid{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:8px;margin-top:14px;overflow-x:auto;padding-bottom:5px}.student-day{border:1px solid #dfe8f2;border-radius:13px;background:#fbfdff;min-width:125px;overflow:hidden}.student-day.today{border:2px solid #2a78d4}.student-day>header{display:flex;justify-content:space-between;gap:6px;background:#edf5ff;padding:9px;border-bottom:1px solid #dfe9f5}.student-day>header b{font-size:12px}.student-day>header span{font-size:10px;color:#687a90}.student-day-slots{padding:7px;display:grid;gap:6px}.student-slot{margin:0}.student-slot-time{width:100%;border:1px solid #b9d6f5;border-radius:9px;background:#fff;color:#135da8;padding:8px 5px;cursor:pointer;display:grid;gap:2px}.student-slot-time:hover{background:#eaf4ff;border-color:#73abe5}.student-slot-time strong{font-size:15px}.student-slot-time small{font-size:9px;color:#607790;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-no-slot{padding:16px 4px;text-align:center;color:#9aa7b5;font-size:10px}.student-slot-foot{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.student-slot-foot span{background:#f3f7fb;border-radius:999px;padding:6px 10px;font-size:12px;color:#52677e}
@media(max-width:900px){.student-week-grid{grid-template-columns:repeat(7,minmax(145px,1fr));min-width:max-content}.student-week-head{align-items:flex-start;flex-direction:column}.student-week-nav{width:100%;justify-content:space-between}}

/* dev.4 school core */
.v2-filter-checks{display:flex;gap:7px;flex-wrap:wrap;padding:8px;border:1px solid #dce6f1;border-radius:12px;background:#fbfdff;max-height:118px;overflow:auto}
.v2-filter-checks label{display:inline-flex;align-items:center;gap:6px;background:#eef5ff;border:1px solid #d4e5f8;border-radius:999px;padding:6px 10px;font-size:12px;cursor:pointer}.v2-filter-checks input{width:16px;height:16px}
.v2-calendar-filters{grid-template-columns:1fr 1fr auto}.v2-calendar-filters .full{grid-column:span 1}.v2-week-board{grid-template-columns:repeat(var(--day-count),minmax(165px,1fr));min-width:1120px;gap:6px}.v2-calendar-day{min-width:0}.v2-day-trainers{grid-template-columns:repeat(var(--trainer-count),minmax(72px,1fr));min-width:0}.v2-trainer-column{min-width:0}.v2-trainer-head{padding:7px 5px;gap:4px}.v2-trainer-head b{font-size:10px;max-width:74px}.v2-avatar{width:21px;height:21px;font-size:10px}.v2-work-windows{padding:5px 4px}.v2-work-windows span{font-size:9px;padding:2px 4px;white-space:nowrap}.v2-booking-stack{padding:4px}.v2-booking-card{padding:6px 4px}.v2-booking-card span{font-size:10px}.v2-booking-card small{font-size:8px}.v2-day-head{padding:8px}.v2-day-head b{font-size:13px}.v2-day-head span{font-size:12px}
.v2-hours-filter{display:flex;gap:12px;align-items:end}.v2-hours-filter .field{margin:0}.table-input{width:105px;border:1px solid #d8e3ee;border-radius:8px;padding:7px}
@media(max-width:1200px){.v2-week-board{min-width:1120px}}
@media(max-width:900px){.v2-calendar-filters{grid-template-columns:1fr}.v2-calendar-filters .full{grid-column:auto}.v2-week-board{min-width:1050px}}

/* v3 dev.5 smart planning */
.v2-smart-booking .panel-title{align-items:flex-start}
.v2-form-errors,.v2-conflict-box{border-radius:14px;padding:14px 16px;margin:0 0 16px 0}
.v2-form-errors{background:#fff7ed;border:1px solid #fdba74;color:#9a3412}
.v2-form-errors ul,.v2-conflict-box ul{margin:8px 20px 0 0;padding:0}
.v2-conflict-box{background:#fff1f2;border:2px solid #ef4444;color:#991b1b;box-shadow:0 0 0 3px rgba(239,68,68,.06)}
.v2-conflict-box b{font-size:1.02rem}.v2-conflict-box p{margin:10px 0 0;font-weight:600}
.v2-override-switch{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid #f87171;background:#fff7f7;border-radius:12px;color:#991b1b}
.v2-override-switch input{width:20px;height:20px;margin-top:2px}.v2-override-switch span{display:flex;flex-direction:column;gap:3px}.v2-override-switch small{color:#7f1d1d}
.v2-conflict-tag{display:inline-block;font-style:normal;font-size:.72rem;font-weight:800;border-radius:999px;padding:2px 7px;background:#fee2e2;color:#991b1b;margin-top:4px}
.v2-smart-booking input[readonly]{background:#f8fafc;color:#475569}

/* dev.6 lesson-block planning */
.v2-lesson-blocks{display:grid;gap:4px;padding:5px;background:#f7fafc}.v2-lesson-block{min-height:54px;border:1px solid #dce6f1;border-radius:8px;padding:6px;display:grid;gap:2px;align-content:center;text-align:center;font:inherit}.v2-lesson-block strong{font-size:10px}.v2-lesson-block span{font-size:10px;font-weight:800}.v2-lesson-block.free{background:#f2fbf5;border-style:dashed;border-color:#9fd1af;color:#1c6d3b;cursor:pointer}.v2-lesson-block.free:hover{background:#e7f7ec;border-style:solid}.v2-lesson-block.blocked{background:#f1f2f4;color:#8a929b}.v2-lesson-block.occupied{background:#eef5fc;border-color:#bfd7ee;padding:3px}.v2-lesson-block.occupied .v2-booking-card{width:100%;margin:0}.student-slot.smart-duration-slot{display:grid;gap:8px}.student-duration-options{display:grid;gap:6px}.student-duration-options form{margin:0}.student-duration-btn{width:100%;border:1px solid #cfe0f3;background:#fff;border-radius:10px;padding:8px;display:grid;gap:2px;text-align:right;cursor:pointer;color:#163b65}.student-duration-btn:hover{background:#eef7ff}.student-duration-btn span,.student-duration-btn small{font-size:11px;color:#64758a}.student-duration-btn b{font-size:12px;color:#0b63ce}

/* dev.7 scalable multi-select dropdowns */
.v2-multi-dropdown{position:relative;width:100%}
.v2-multi-dropdown>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:10px 14px;border:1px solid #d7e3ef;border-radius:12px;background:#fff;cursor:pointer;font-weight:700;color:#173a63}
.v2-multi-dropdown>summary::-webkit-details-marker{display:none}.v2-dd-arrow{font-size:18px;color:#5f7691}
.v2-multi-menu{position:absolute;z-index:50;top:calc(100% + 6px);inset-inline:0;background:#fff;border:1px solid #d7e3ef;border-radius:14px;box-shadow:0 16px 35px rgba(20,54,92,.16);padding:10px;min-width:280px}
.v2-multi-tools{display:grid;grid-template-columns:1fr auto auto;gap:7px;margin-bottom:8px}.v2-multi-tools input{min-width:0}
.v2-multi-options{max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:4px;padding-inline-end:2px}
.v2-multi-options label{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;cursor:pointer}.v2-multi-options label:hover{background:#f0f6ff}.v2-multi-options input{width:17px;height:17px;flex:0 0 auto}
@media(max-width:720px){.v2-multi-tools{grid-template-columns:1fr 1fr}.v2-multi-tools input{grid-column:1/-1}.v2-multi-menu{min-width:0}}

/* DEV12 mobile-friendly booking choices and invoice cards */
.student-slot-start{width:100%;min-height:63px;display:flex;gap:8px;flex-direction:column;align-items:center;justify-content:center;border:1px solid #d9e5f3;background:#f5f9ff;border-radius:12px;color:#0f3662;cursor:pointer;padding:8px;margin-bottom:7px}
.student-slot-start b{font-size:18px}.student-slot-start small{max-width:100%;overflow:hidden;text-overflow:ellipsis}.student-slot-start span{font-size:12px;color:#1660be}
.student-reservation-dialog{border:none;border-radius:24px;width:min(94vw,600px);max-height:90vh;overflow:auto;padding:0;box-shadow:0 24px 65px #1b33504d}
.student-reservation-dialog::backdrop{background:#102c50aa}.student-reservation-panel{padding:24px}
.student-booking-choices{display:grid;gap:12px}.student-booking-choice{display:flex;gap:12px;align-items:center;border:1px solid #d8e4f2;border-radius:12px;padding:15px;cursor:pointer;background:white}
.student-booking-choice:has(input:checked){border-color:#1469cb;background:#eaf4ff}.student-booking-choice input{height:20px;width:20px}
.invoice-checkbox{display:flex;align-items:center;gap:12px;padding:10px;margin:6px 0;border:1px solid #dbe5f1;border-radius:10px}.invoice-checkbox input{width:18px;height:18px}.invoice-checkbox span:last-child{margin-inline-start:auto}
@media(max-width:600px){.student-reservation-panel{padding:16px}.student-booking-choice{font-size:14px}.invoice-checkbox{flex-wrap:wrap}}

/* DEV13 instructor-focused mobile layout */
.instructor-week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:9px;overflow-x:auto;padding-bottom:10px}
.instructor-day{background:#f5f8ff;border:1px solid #dce7f8;border-radius:12px;padding:11px;min-height:160px}
.instructor-day>b{display:block;border-bottom:1px solid #cbdcf1;padding-bottom:8px;margin-bottom:8px}
.instructor-booking{display:flex;flex-direction:column;gap:5px;background:#fff;border-inline-start:4px solid #0c65db;border-radius:8px;padding:10px;margin-bottom:8px;box-shadow:0 1px 5px #001b3a10}
.instructor-booking strong{align-self:flex-end;font-size:14px}
.instructor-booking small{color:#596f86}
.instructor-note{padding:12px;border-bottom:1px solid #dbe5f1;margin:8px 0;background:#f8fbff;border-radius:9px;overflow-wrap:anywhere}
.instructor-note p{white-space:pre-wrap;margin:8px 0}
.instructor-note form{display:grid;gap:8px}
@media(max-width:800px){.instructor-week{grid-template-columns:repeat(7,minmax(210px,1fr))}.instructor-week>.instructor-day{min-height:175px}}

/* dev14 student onboarding */
.reg-page{max-width:800px;margin:30px auto;padding:14px;direction:rtl}
.reg-hero{display:flex;align-items:center;gap:12px;background:linear-gradient(115deg,#123f88,#3365cc);border-radius:22px 22px 0 0;padding:22px;color:#fff}
.reg-hero b{font-size:24px}.reg-hero p{margin:5px 0 0;opacity:.9}
.reg-symbol{display:inline-grid;place-items:center;border-radius:18px;background:#eaf1ff;color:#1350a9;font-size:30px;min-width:60px;height:60px}
.reg-panel{border-radius:18px;padding:26px}.reg-page .reg-panel{border-radius:0 0 22px 22px}
.reg-panel h1{font-size:clamp(22px,3vw,30px);margin:5px 0 14px}
.reg-grid{margin-top:16px}.reg-privacy{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.8}
.reg-privacy input{width:auto;margin-top:8px;flex-shrink:0}
.reg-honeypot{position:absolute;left:-10000px;opacity:0;pointer-events:none}
.reg-footer{text-align:center;padding:20px}.reg-footer a{color:#184c9e}
.reg-copy{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.reg-copy input{flex:1;min-width:180px;direction:ltr;text-align:left}.reg-copy button{white-space:nowrap}
.reg-inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reg-inline-form input{flex:1;min-width:200px;direction:ltr;text-align:left}.reg-inline-form button{white-space:nowrap}
.reg-details{display:grid;grid-template-columns:120px 1fr;gap:12px 16px}.reg-details dt{color:#66758e}.reg-details dd{margin:0;overflow-wrap:anywhere}
.reg-success{text-align:center;max-width:620px;margin:auto}.reg-success .reg-symbol{margin:auto auto 15px}
@media(max-width:650px){.reg-panel{padding:18px}.reg-details{grid-template-columns:1fr}.reg-details dt{margin-top:8px}.reg-copy>*{width:100%;max-width:100%}}

/* dev.15 calendar/intake refinements */
.v2-lesson-block.free.blank-slot{min-height:48px;background:#fff;border:0;border-bottom:1px solid #edf1f6;border-radius:0;box-shadow:none;cursor:pointer}
.v2-lesson-block.free.blank-slot:hover{background:#f2f8ff;outline:1px solid #a9cdf8}
.v2-lesson-block.blocked.blank-slot{min-height:48px;background:#f0f1f3;border:0;border-bottom:1px solid #e2e4e8;border-radius:0}
.v2-lesson-block.occupied{min-height:48px}
.v2-booking-card{cursor:pointer}
.v2-booking-detail-card{max-width:520px}
.v2-detail-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:#25aeda;color:white;border-radius:16px;padding:16px;margin-bottom:16px}
.v2-detail-hero h2{margin:3px 0 0;color:white;direction:ltr;text-align:right}.v2-detail-hero small{color:#eafaff}
.v2-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v2-detail-grid>div,.v2-detail-note{padding:12px;border:1px solid #e3e8ef;border-radius:12px;background:#fff}.v2-detail-grid small,.v2-detail-note small{display:block;color:#7a8492;margin-bottom:4px}.v2-detail-actions{display:flex;gap:10px;margin-top:16px}.v2-detail-actions>*{flex:1}
.v2-custom-duration-check input[type=number]{margin-top:8px;width:100%}
@media(max-width:700px){.v2-detail-grid{grid-template-columns:1fr}}

/* dev.16 booking action card + instructor-hours refinements */
.v2-appointment-actions{display:grid;gap:8px;margin-top:14px}.v2-appointment-action{width:100%;border:1px solid #dce4ee;background:#fff;border-radius:10px;padding:11px 12px;display:flex;gap:10px;align-items:center;text-align:right;color:#24384d;font:inherit;cursor:pointer;text-decoration:none}.v2-appointment-action:hover{background:#f7fbff;border-color:#b9d3ee}.v2-appointment-action.smart{color:#1d6c35}.v2-appointment-action.danger{color:#9f2631}.v2-appointment-action span{width:22px;text-align:center;font-size:17px}.v2-cancel-details>summary{list-style:none}.v2-cancel-details>summary::-webkit-details-marker{display:none}.v2-cancel-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 0 2px}.v2-cancel-choices form,.v2-cancel-choices button{width:100%}.v2-detail-close{width:100%;margin-top:2px}.field-error-text{color:#b4232c!important;font-weight:700}.v2-rate-form{display:grid;gap:5px;min-width:150px}.v2-rate-form label{display:grid;grid-template-columns:1fr 75px;gap:5px;align-items:center;font-size:11px}.v2-rate-form input{width:75px;border:1px solid #d8e3ee;border-radius:7px;padding:5px}.smart-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.smart-plan-card{border:1px solid #dfe8f2;border-radius:13px;padding:12px;background:#fbfdff;display:grid;gap:9px}.smart-plan-card>div:first-child{display:flex;align-items:center;justify-content:space-between}.smart-plan-card strong{font-size:20px;color:#0b63ce}.smart-plan-card small{color:#64758a}.smart-plan-options{display:grid;gap:6px}.smart-plan-options form,.smart-plan-options button{width:100%}.instructor-note{border:1px solid #e3e8ef;border-radius:11px;padding:10px;margin-bottom:8px;background:#fff}.instructor-note small{color:#73849a}.instructor-note p{margin:7px 0 0;white-space:pre-wrap}
@media(max-width:900px){.smart-plan-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.smart-plan-grid{grid-template-columns:1fr}.v2-cancel-choices{grid-template-columns:1fr}}

/* dev17 calendar: fixed trainer columns, Opleiding colors, gray breaks/unavailability */
.opleiding-color-dot{display:inline-block;width:12px;height:12px;border-radius:4px;background:var(--opleiding-color);margin-inline-end:7px;vertical-align:middle;border:1px solid rgba(0,0,0,.12)}
.opleiding-color-input{display:flex;align-items:center;gap:10px}.opleiding-color-input input[type=color]{width:70px;height:44px;padding:3px}.opleiding-color-input span{direction:ltr;font-weight:800}
.v2-week-board{display:grid!important;grid-template-columns:repeat(var(--day-count),max-content)!important;min-width:max-content!important;gap:6px!important;align-items:start}.v2-calendar-day{width:max(190px,calc(var(--trainer-count) * 132px));min-width:max(190px,calc(var(--trainer-count) * 132px));overflow:hidden}.v2-day-trainers{display:grid!important;grid-template-columns:repeat(var(--trainer-count),132px)!important;min-width:max-content!important}.v2-trainer-column{width:132px;min-width:132px}.v2-trainer-head{height:45px;justify-content:center;position:sticky;top:0;z-index:2}.v2-trainer-head b{max-width:91px;font-size:10px}.v2-lesson-blocks{gap:0;padding:0;background:#fff}.v2-lesson-block,.v2-lesson-block.free.blank-slot,.v2-lesson-block.blocked.blank-slot,.v2-lesson-block.occupied{min-height:52px;border-radius:0;border:0;border-bottom:1px solid #e9edf2}.v2-lesson-block.free.blank-slot{background:#fff}.v2-lesson-block.free.blank-slot:hover{background:#f4f9ff;outline:1px inset #9dc6ef}.v2-lesson-block.blocked.blank-slot{background:#e6e8eb!important;border-bottom-color:#d8dce1!important;cursor:not-allowed}.v2-booking-card{--opleiding-color:#7FB3D5;background:color-mix(in srgb,var(--opleiding-color) 58%,white)!important;border-inline-start:5px solid var(--opleiding-color)!important;color:#18314b}.v2-booking-card.status-completed{box-shadow:inset 0 0 0 2px rgba(31,139,80,.28)}.v2-booking-card.status-cancelled_free,.v2-booking-card.status-cancelled_student_free,.v2-booking-card.status-cancelled_charged{filter:grayscale(.35);opacity:.62}.v2-detail-hero{background:color-mix(in srgb,var(--opleiding-color,#7FB3D5) 70%,white)!important}.lg.blocked{background:#e0e2e5;border:1px solid #c9cdd2}.lg.opleiding{background:var(--opleiding-color);border:1px solid rgba(0,0,0,.15)}
.service-tax-split{border:1px solid #d8e1f0;border-radius:12px;padding:14px;min-width:0}.tax-part-row{margin-bottom:10px}.vat-mode-switch{margin-bottom:12px}
@media(max-width:900px){.v2-calendar-day{width:max(190px,calc(var(--trainer-count) * 128px));min-width:max(190px,calc(var(--trainer-count) * 128px))}.v2-day-trainers{grid-template-columns:repeat(var(--trainer-count),128px)!important}.v2-trainer-column{width:128px;min-width:128px}}

.booking-continuation{background:color-mix(in srgb,var(--opleiding-color,#7FB3D5) 44%,white)!important;border-inline-start:5px solid var(--opleiding-color,#7FB3D5)!important}

/* dev.18: scrollable navigation + compact PlanGo-like agenda */
.sidebar{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin}.sidebar nav{flex:0 0 auto}.sidebar-user{margin-top:22px;padding-bottom:8px}
.v2-permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v2-check-grid.compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));max-height:190px;overflow:auto}
.v2-copy-banner{position:sticky;top:72px;z-index:18;margin-bottom:10px;background:#fff6d9;border:1px solid #edc96b;border-radius:12px;padding:10px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.v2-copy-banner span{color:#6d571d}.v2-copy-banner[hidden]{display:none}
.v2-calendar-day{width:max(126px,calc(var(--trainer-count) * 86px))!important;min-width:max(126px,calc(var(--trainer-count) * 86px))!important}.v2-day-trainers{grid-template-columns:repeat(var(--trainer-count),86px)!important}.v2-trainer-column{width:86px!important;min-width:86px!important}.v2-trainer-head{height:30px!important;padding:4px!important;justify-content:center!important}.v2-trainer-head b{font-size:10px!important;max-width:none!important;letter-spacing:.2px}.v2-trainer-head .v2-avatar{display:none!important}.v2-booking-card{padding:4px 3px!important;gap:1px!important;overflow:hidden}.v2-booking-card strong{font-size:9px!important;white-space:nowrap}.v2-booking-card span{font-size:9px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v2-booking-card small{font-size:7.5px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v2-conflict-tag{font-size:8px!important}.v2-day-head small{display:none}.v2-day-head{padding:5px 6px!important}.v2-day-head b{font-size:11px!important}.v2-day-head span{font-size:10px!important}.v2-lesson-block,.v2-lesson-block.free.blank-slot,.v2-lesson-block.blocked.blank-slot,.v2-lesson-block.occupied{min-height:48px!important}
@media(max-width:900px){.v2-calendar-day{width:max(126px,calc(var(--trainer-count) * 82px))!important;min-width:max(126px,calc(var(--trainer-count) * 82px))!important}.v2-day-trainers{grid-template-columns:repeat(var(--trainer-count),82px)!important}.v2-trainer-column{width:82px!important;min-width:82px!important}.v2-permission-grid{grid-template-columns:1fr}}


/* dev.19: full-week no-horizontal-scroll calendar + hierarchical school navigation */
.sidebar-school-group{border-radius:11px;overflow:visible}
.sidebar-school-group>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px 14px;border-radius:10px;color:#dbe8f8;user-select:none}
.sidebar-school-group>summary::-webkit-details-marker{display:none}
.sidebar-school-group>summary:hover,.sidebar-school-group>summary.active{background:rgba(255,255,255,.13);color:#fff}
.sidebar-school-group>summary i{font-style:normal;font-size:12px;transition:transform .18s;opacity:.8}
.sidebar-school-group[open]>summary i{transform:rotate(180deg)}
.sidebar-subnav{display:grid;gap:2px;margin:5px 10px 8px 0;padding:5px 9px 5px 0;border-right:1px solid rgba(255,255,255,.19)}
.sidebar .sidebar-subnav a{padding:7px 10px;border-radius:8px;font-size:12px;color:#c9daee;min-height:0}
.sidebar .sidebar-subnav a:hover,.sidebar .sidebar-subnav a.active{background:rgba(255,255,255,.12);color:#fff}
.sidebar .sidebar-subnav a span{white-space:normal;line-height:1.35}

/* The week must always fit all seven days inside the available desktop width. */
.v2-calendar-panel{overflow:hidden!important}
.v2-calendar-scroll{overflow-x:hidden!important;width:100%;padding-bottom:0!important}
.v2-week-board:not(.is-day){display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:2px!important;min-width:0!important;width:100%!important;max-width:100%!important;direction:rtl}
.v2-week-board:not(.is-day) .v2-calendar-day{width:auto!important;min-width:0!important;max-width:none!important;border-radius:6px!important}
.v2-week-board:not(.is-day) .v2-day-trainers{display:grid!important;grid-template-columns:repeat(var(--trainer-count),minmax(0,1fr))!important;min-width:0!important;width:100%!important}
.v2-week-board:not(.is-day) .v2-trainer-column{width:auto!important;min-width:0!important;overflow:hidden}
.v2-week-board:not(.is-day) .v2-trainer-head{height:25px!important;min-width:0!important;padding:2px 1px!important;border-bottom:1px solid #e7edf4}
.v2-week-board:not(.is-day) .v2-trainer-head b{font-size:8px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;max-width:100%!important;text-align:center}
.v2-week-board:not(.is-day) .v2-day-head{padding:3px 2px!important;min-height:31px!important;display:flex!important;justify-content:center!important;gap:3px!important;flex-wrap:wrap!important}
.v2-week-board:not(.is-day) .v2-day-head b{font-size:9px!important;line-height:1!important}
.v2-week-board:not(.is-day) .v2-day-head span{font-size:8px!important;line-height:1!important}
.v2-week-board:not(.is-day) .v2-lesson-blocks{padding:0!important;gap:0!important}
.v2-week-board:not(.is-day) .v2-lesson-block,.v2-week-board:not(.is-day) .v2-lesson-block.free.blank-slot,.v2-week-board:not(.is-day) .v2-lesson-block.blocked.blank-slot,.v2-week-board:not(.is-day) .v2-lesson-block.occupied{min-height:43px!important;padding:0!important}
.v2-week-board:not(.is-day) .v2-booking-card{padding:2px 1px!important;border-inline-start-width:3px!important;border-radius:3px!important;gap:0!important;min-width:0!important;overflow:hidden!important}
.v2-week-board:not(.is-day) .v2-booking-card strong{font-size:7.5px!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;direction:ltr!important;text-align:center!important}
.v2-week-board:not(.is-day) .v2-booking-card span{font-size:7px!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:center!important}
.v2-week-board:not(.is-day) .v2-booking-card small{display:none!important}
.v2-week-board:not(.is-day) .v2-conflict-tag{font-size:6px!important;padding:0 2px!important;margin:0!important}
.v2-week-board:not(.is-day) .booking-continuation{border-inline-start-width:3px!important}
.v2-week-board:not(.is-day) .v2-day-empty{font-size:8px!important;padding:15px 2px!important}

/* Keep the single-day view comfortably readable. */
.v2-week-board.is-day{width:100%!important;min-width:0!important;grid-template-columns:minmax(0,1fr)!important}
.v2-week-board.is-day .v2-calendar-day{width:100%!important;min-width:0!important}
.v2-week-board.is-day .v2-day-trainers{grid-template-columns:repeat(var(--trainer-count),minmax(90px,1fr))!important;min-width:0!important}
.v2-week-board.is-day .v2-trainer-column{width:auto!important;min-width:0!important}

@media(max-width:1200px){
  .v2-week-board:not(.is-day){gap:1px!important}
  .v2-week-board:not(.is-day) .v2-day-head b{font-size:8px!important}
  .v2-week-board:not(.is-day) .v2-day-head span{font-size:7px!important}
  .v2-week-board:not(.is-day) .v2-trainer-head b{font-size:7px!important}
  .v2-week-board:not(.is-day) .v2-booking-card strong{font-size:6.5px!important}
  .v2-week-board:not(.is-day) .v2-booking-card span{font-size:6.3px!important}
}
@media(max-width:980px){
  /* On tablets the seven-day agenda still remains one full week, without horizontal scrolling. */
  .v2-week-board:not(.is-day){grid-template-columns:repeat(7,minmax(0,1fr))!important;min-width:0!important}
}


/* dev.20: Opleiding-based Leskaart, 1..8 progress scale */
.leskaart-setting{margin:0}.leskaart-template-table input{min-width:58px;width:100%;padding:7px}.leskaart-template-table td:nth-child(1),.leskaart-template-table td:nth-child(2),.leskaart-template-table td:nth-child(4){width:88px}.leskaart-template-table td:nth-child(5){width:80px}.compact-check{display:flex;align-items:center;gap:6px}.compact-check input{width:auto}
.leskaart-template-table tr[class*="leskaart-group-"] td:first-child{border-inline-start:7px solid #6d8eea}.leskaart-template-table tr.leskaart-group-2 td:first-child{border-inline-start-color:#f0b429}.leskaart-template-table tr.leskaart-group-3 td:first-child{border-inline-start-color:#df7b25}.leskaart-template-table tr.leskaart-group-4 td:first-child{border-inline-start-color:#bcc2c9}.leskaart-template-table tr.leskaart-group-5 td:first-child{border-inline-start-color:#76b82a}
.leskaart-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:#fff;border:1px solid #e0e7f0;border-radius:13px;padding:10px 12px;margin-bottom:14px}.leskaart-legend b{font-size:12px;margin-inline-end:8px}.score-chip,.score-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;border:1px solid rgba(0,0,0,.12);font-weight:900;color:#fff}.score-btn{cursor:pointer;transition:transform .08s,box-shadow .08s;padding:0}.score-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px #001b3a25}.score-btn.selected{outline:3px solid #173b67;outline-offset:2px}
.s1{background:#981b2b}.s2{background:#c4323c}.s3{background:#e65b58}.s4{background:#c86400}.s5{background:#e88612}.s6{background:#f2a83b;color:#402500}.s7{background:#9bd67d;color:#183b16}.s8{background:#2e9c48}
.leskaart-card{padding:10px}.leskaart-group-title{display:flex;align-items:center;gap:9px;margin:10px 0 4px;padding:7px 10px;border-radius:9px;background:#eef3ff;border-inline-start:8px solid #6d8eea}.leskaart-group-title.group-2{background:#fff7dc;border-inline-start-color:#f0b429}.leskaart-group-title.group-3{background:#fff0e3;border-inline-start-color:#df7b25}.leskaart-group-title.group-4{background:#f0f1f3;border-inline-start-color:#aab0b7}.leskaart-group-title.group-5{background:#eef8df;border-inline-start-color:#76b82a}.leskaart-group-title b{font-size:18px}.leskaart-group-title span{font-size:12px;color:#586b80}
.leskaart-topic-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid #e8edf3;padding:9px 8px}.leskaart-topic-name{display:grid;grid-template-columns:45px 1fr;gap:2px 8px;align-items:center}.leskaart-topic-name .topic-code{grid-row:1/3;direction:ltr;font-weight:900;color:#597088;text-align:center}.leskaart-topic-name small{color:#7b8794;font-size:10px}.leskaart-score-form{display:flex;gap:5px;direction:ltr}
@media(max-width:800px){.leskaart-topic-row{grid-template-columns:1fr}.leskaart-score-form{overflow-x:auto;padding:3px}.score-btn{min-width:34px}.leskaart-template-table{min-width:720px}}

/* =====================================================================
   dev.22 — UX cleanup: simpler hierarchy, lighter surfaces, mobile-first
   ===================================================================== */
:root{--ux-radius:14px;--ux-radius-sm:10px;--ux-gap:16px;--ux-soft:#f7f9fc;--ux-border:#e3e9f1;--ux-blue-soft:#edf5ff;--ux-shadow:0 2px 10px rgba(13,47,83,.045)}
body{background:#f5f7fa}.page-wrap main{max-width:1540px;padding:24px 26px 40px}.panel{border-color:var(--ux-border);border-radius:var(--ux-radius);box-shadow:var(--ux-shadow);padding:18px}.page-head{margin-bottom:18px}.page-head h1{font-size:27px;letter-spacing:-.2px}.eyebrow{font-size:11px;text-transform:none;margin-bottom:4px}.muted{line-height:1.6}.primary,.secondary,.btn,.small-btn{border-radius:9px;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.primary{box-shadow:none}.secondary,.btn.secondary,.small-btn{background:#f0f4f8;color:#274b70}.secondary:hover,.small-btn:hover{background:#e6edf5}.ghost-btn{border:0;background:transparent;color:#51677e;cursor:pointer;padding:7px 9px;border-radius:8px;font-weight:700}.ghost-btn:hover{background:#f1f4f8}.danger-link{border:0;background:transparent;color:#b8242e;cursor:pointer;font-weight:700;padding:7px 9px;border-radius:8px}.danger-link:hover{background:#fff0f1}.small{min-height:32px!important;padding:6px 10px!important;font-size:12px!important}.text-link,.back-link{color:#1766b7;font-weight:700}.back-link{display:inline-block;font-size:12px;margin-bottom:5px}.page-actions,.ux-page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ux-page-head{align-items:flex-end}.ux-section-card{box-shadow:none}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.section-heading h2{margin:0 0 4px;font-size:19px}.section-heading h3{margin:0}.section-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.section-kicker{display:block;color:#6c7c90;font-size:11px;font-weight:800;margin-bottom:4px}.form-actions,.section-actions,.dialog-actions{display:flex;justify-content:flex-end;gap:9px;align-items:center;margin-top:16px}.compact-form{gap:12px}.compact-form .field input,.compact-form .field select,.compact-form .field textarea{padding:10px 11px}.compact-form .field label{font-size:12px}.inline-settings{display:flex;gap:9px;align-items:center}.inline-settings.wrap{flex-wrap:wrap}.inline-settings input,.inline-settings select{border:1px solid #dce4ee;border-radius:9px;padding:9px 10px;background:#fff;min-width:0}.info-strip,.empty-inline{background:#f7f9fc;border:1px solid var(--ux-border);border-radius:10px;padding:11px 13px;color:#53677d}.info-strip{display:flex;gap:10px;justify-content:space-between}.inline-error{background:#fff0f1;border:1px solid #efc9cc;color:#a92029;padding:11px 13px;border-radius:10px;margin-bottom:14px}.field-warning{color:#9a5d00;background:#fff8e5;border:1px solid #f0d79b;padding:9px 11px;border-radius:9px;display:block}

/* Navigation */
.sidebar{width:224px;padding:18px 13px;background:#073b72;box-shadow:none}.page-wrap{margin-right:224px}.brand-mark{width:40px;height:40px;border-radius:11px;font-size:22px}.brand-text{margin:10px 3px 18px}.brand-text b{font-size:17px}.sidebar nav{gap:3px}.sidebar nav>a,.sidebar-school-group>summary{padding:9px 11px!important;min-height:39px}.nav-mark{width:7px;height:7px;border-radius:3px;border:1.5px solid currentColor;opacity:.65;flex:0 0 auto}.sidebar nav a.active .nav-mark,.sidebar-school-group>summary.active .nav-mark{background:currentColor;opacity:1}.sidebar-subnav{margin:3px 10px 7px 0;padding:3px 8px 3px 0}.sidebar .sidebar-subnav a{font-size:11.5px;padding:6px 8px}.sidebar-user{font-size:12px}.topbar{height:60px;padding:0 22px}.topbar-brand{display:grid!important;gap:1px!important}.topbar-brand b{font-size:14px}.topbar-brand small{font-size:10px}.ux-topbar-start,.ux-topbar-actions{display:flex!important;align-items:center!important;gap:10px!important}.ux-quick-add{position:relative}.ux-quick-add>summary{list-style:none;cursor:pointer}.ux-quick-add>summary::-webkit-details-marker{display:none}.ux-quick-add-menu{position:absolute!important;left:0;top:46px;display:grid!important;min-width:175px;background:#fff;border:1px solid var(--ux-border);border-radius:12px;padding:7px;box-shadow:0 14px 35px rgba(12,42,76,.14);z-index:40}.ux-quick-add-menu a{padding:9px 10px;border-radius:8px;font-size:13px}.ux-quick-add-menu a:hover{background:#f3f6fa}

/* Toasts */
.toast-stack{position:fixed;top:72px;left:24px;z-index:100;display:grid;gap:8px;width:min(390px,calc(100vw - 28px))}.flash.toast{margin:0;box-shadow:0 12px 32px rgba(15,41,71,.13);display:flex;align-items:flex-start;justify-content:space-between;gap:10px;transition:.18s}.flash.toast button{border:0;background:transparent;cursor:pointer;font-size:18px;color:inherit}.flash.toast.is-hiding{opacity:0;transform:translateY(-5px)}

/* Dashboard */
.ux-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.ux-metric{background:#fff;border:1px solid var(--ux-border);border-radius:13px;padding:15px;display:grid;gap:4px}.ux-metric span{font-size:12px;color:var(--muted)}.ux-metric strong{font-size:23px}.ux-metric small{color:#8996a6;font-size:11px}.ux-dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-bottom:16px}.ux-next-lesson{border-right:5px solid var(--opleiding-color);background:color-mix(in srgb,var(--opleiding-color) 12%,white);border-radius:11px;padding:16px;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}.ux-next-time{display:grid;text-align:center}.ux-next-time strong{font-size:24px}.ux-next-time span{font-size:11px;color:var(--muted)}.ux-next-info h3{margin:0 0 3px}.ux-next-info p,.ux-next-info small{margin:0;color:var(--muted)}.ux-attention-list,.ux-agenda-list{display:grid}.ux-attention-item{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:11px 3px;border-bottom:1px solid #edf1f5}.ux-attention-item:last-child{border-bottom:0}.ux-attention-dot{width:8px;height:8px;border-radius:50%;background:#e2a42b}.ux-agenda-row{display:grid;grid-template-columns:62px minmax(0,1.4fr) minmax(90px,.8fr) minmax(90px,.8fr);gap:12px;align-items:center;padding:11px 10px;border-bottom:1px solid #edf1f5;border-right:4px solid var(--opleiding-color)}.ux-agenda-row:hover{background:#fafcff}.ux-agenda-row>div{display:grid}.ux-agenda-row span,.ux-agenda-row small{color:var(--muted);font-size:12px}

/* General lists and profiles */
.list-toolbar,.ux-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.list-toolbar.inside{margin:0 0 10px}.search-box,.ux-search{flex:1;max-width:480px}.search-box input,.ux-search input{width:100%;border:1px solid #dce4ee;border-radius:10px;padding:10px 12px;background:#fff}.list-count{color:var(--muted);font-size:12px}.list-panel,.ux-list-panel{padding:10px 16px}.entity-list,.ux-card-list{display:grid}.entity-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:12px;align-items:center;padding:13px 4px;border-bottom:1px solid #edf1f5}.entity-row:last-child{border-bottom:0}.entity-row-link:hover{background:#fafcff}.entity-main{display:grid;gap:3px;min-width:0}.entity-main b{overflow:hidden;text-overflow:ellipsis}.entity-main small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.entity-meta{display:flex;gap:12px;align-items:center;color:#52677d;font-size:12px}.entity-meta strong{font-size:14px;color:var(--text)}.row-chevron{font-size:24px;color:#9ba8b7}.row-actions,.v2-row-actions{display:flex;gap:5px;align-items:center}.row-actions form,.v2-row-actions form{margin:0}.avatar.initials,.vehicle-avatar{background:#edf5ff;color:#145fa9}.avatar.large{width:54px;height:54px;font-size:16px}.vehicle-avatar{border-radius:12px}.status-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#f0f3f6;color:#66788c;white-space:nowrap}.status-pill.ok,.status-pill.success{background:#eaf8f0;color:#087744}.status-pill.off,.status-pill.neutral{background:#eff2f5;color:#66717e}.status-pill.warning{background:#fff6dc;color:#9a6500}.status-pill.info{background:#eaf3ff;color:#1760aa}.empty-state{padding:28px 18px;text-align:center;display:grid;justify-items:center;gap:7px;color:var(--muted)}.empty-state b{color:#30455d}.empty-state.compact{padding:14px}.profile-hero{background:#fff;border:1px solid var(--ux-border);border-radius:14px;padding:17px 18px;display:flex;align-items:center;gap:14px;margin-bottom:14px}.profile-hero-main{min-width:0;flex:1}.profile-hero-main h1,.profile-hero-main h2{margin:1px 0 4px}.profile-hero-main p{margin:0;color:var(--muted)}.mini-hero{padding:14px}.profile-grid{display:grid;gap:16px}.profile-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.definition-list{display:grid}.definition-list>div{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid #edf1f5}.definition-list>div:last-child{border-bottom:0}.definition-list span{color:var(--muted)}.chip-list{display:flex;gap:7px;flex-wrap:wrap}.data-chip{display:inline-flex;align-items:center;gap:6px;background:#f3f6fa;border:1px solid #e2e8ef;padding:6px 9px;border-radius:999px;font-size:12px}.data-chip form{display:inline}.opleiding-color-dot{margin:0}.ux-card-list .ux-entity-card{box-shadow:none!important;border-radius:12px!important}.ux-entity-card{border:1px solid var(--ux-border);padding:14px;margin-bottom:9px;display:grid;grid-template-columns:minmax(0,1.3fr) auto auto;gap:16px;align-items:center}.ux-entity-main{display:flex;gap:10px;align-items:center}.ux-entity-main h3{margin:0 0 3px}.ux-entity-main p{margin:0;color:var(--muted);font-size:12px}.ux-training-swatch{width:10px;height:38px;border-radius:6px;background:var(--opleiding-color);display:block}.ux-entity-stats{display:flex;gap:16px}.ux-entity-stats span{display:grid;text-align:center}.ux-entity-stats small{font-size:10px;color:var(--muted)}.ux-entity-meta{display:flex;gap:6px;align-items:center}.ux-color-label{display:inline-flex;align-items:center;gap:7px}.ux-color-label i{width:9px;height:9px;border-radius:3px;background:var(--opleiding-color)}.ux-person-cell{display:flex;gap:9px;align-items:center}.ux-avatar{width:34px;height:34px;border-radius:50%;background:#edf5ff;color:#155fa9;display:grid;place-items:center;font-weight:900}

/* Tabs */
.ux-tabs{display:flex;gap:3px;align-items:center;overflow:auto;scrollbar-width:none}.ux-tabs::-webkit-scrollbar{display:none}.ux-tabs-links{margin:0 0 14px;padding:4px;background:#eaf0f6;border-radius:11px;width:max-content;max-width:100%}.ux-tabs a,.ux-tabs button{border:0;background:transparent;padding:8px 12px;border-radius:8px;color:#52677c;font-weight:800;white-space:nowrap;cursor:pointer}.ux-tabs a.active,.ux-tabs button.active{background:#fff;color:#124f91;box-shadow:0 1px 4px rgba(20,55,91,.09)}

/* Dialogs */
.ux-dialog,.v2-booking-dialog,.student-reservation-dialog{border:0;padding:0;background:transparent;width:min(650px,calc(100vw - 26px));max-width:650px}.ux-dialog.wide-dialog{max-width:850px;width:min(850px,calc(100vw - 26px))}.ux-dialog::backdrop,.v2-booking-dialog::backdrop,.student-reservation-dialog::backdrop{background:rgba(6,27,53,.46);backdrop-filter:blur(2px)}.dialog-card,.ux-dialog-card,.v2-dialog-card,.student-reservation-panel{background:#fff;border-radius:17px;padding:20px;box-shadow:0 24px 65px rgba(5,27,55,.22);max-height:88vh;overflow:auto}.ux-dialog-wide{max-width:780px}.dialog-head,.ux-dialog-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}.dialog-head h2,.ux-dialog-head h2{margin:0 0 4px}.dialog-head p,.ux-dialog-head p{margin:0;color:var(--muted);font-size:12px}.dialog-close{border:0;background:#f0f3f7;width:34px;height:34px;border-radius:9px;font-size:20px;cursor:pointer;color:#415971;flex:0 0 auto}.dialog-close:hover{background:#e5ebf2}.ux-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:17px}

/* Opleiding resources / services */
.choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.choice-card{border:1px solid var(--ux-border);border-radius:11px;padding:11px;display:flex;gap:9px;cursor:pointer;background:#fff}.choice-card:has(input:checked){border-color:#8bb9ef;background:#f4f9ff}.choice-card>span{display:grid;gap:3px}.choice-card small{color:var(--muted)}.choice-card input[type=checkbox]{width:18px;height:18px}.choice-card.custom-duration span input{margin-top:5px;width:100%;padding:7px;border:1px solid #dce4ee;border-radius:7px}.resource-selector-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.subsection-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.subsection-head h3{margin:0}.subsection-head span{font-size:11px;color:var(--muted)}.select-list{display:grid;border:1px solid var(--ux-border);border-radius:11px;max-height:330px;overflow:auto}.select-list>label{display:flex;gap:9px;align-items:center;padding:10px 11px;border-bottom:1px solid #edf1f5;cursor:pointer}.select-list>label:last-child{border-bottom:0}.select-list>label:has(input:checked){background:#f4f9ff}.select-list>label>span{display:grid}.select-list small{color:var(--muted)}.compact-entity-list .entity-row{grid-template-columns:minmax(0,1fr) auto auto}.settings-line{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--ux-border);border-radius:11px;padding:12px;background:#fbfcfe}.settings-line>span{display:grid;gap:3px}.settings-line small{color:var(--muted)}.settings-line input[type=checkbox]{width:20px;height:20px;accent-color:var(--blue)}

/* Schedule, permissions, settings */
.schedule-week-list{display:grid}.schedule-day{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f5}.schedule-day>div{display:flex;flex-wrap:wrap;gap:6px}.schedule-chip{display:inline-flex;align-items:center;gap:6px;background:#f2f6fa;border:1px solid #e0e7ef;border-radius:9px;padding:6px 8px;font-size:12px}.schedule-chip form{display:inline}.advanced-box{border:1px solid var(--ux-border);border-radius:11px;background:#fbfcfd}.advanced-box>summary{cursor:pointer;list-style:none;padding:12px 14px;display:flex;justify-content:space-between;align-items:center}.advanced-box>summary::-webkit-details-marker{display:none}.advanced-box>summary>span{display:grid;gap:2px}.advanced-box>summary small{color:var(--muted);font-weight:normal}.advanced-box[open]>summary{border-bottom:1px solid #e9eef4}.advanced-box>*:not(summary){margin:14px}.permission-grid,.modern-permissions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.modern-permissions label{display:flex;gap:8px;align-items:center;border:1px solid var(--ux-border);border-radius:9px;padding:9px 10px;background:#fff;cursor:pointer}.modern-permissions label:has(input:checked){background:#eef7ff;border-color:#a9cbed}.modern-permissions input{width:18px;height:18px}.permission-summary{display:flex;gap:5px;flex-wrap:wrap}.permission-summary span:not(:empty){font-size:10px;background:#f0f4f8;color:#50657c;padding:4px 6px;border-radius:999px}.calendar-access-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:15px}.radio-line{display:flex;gap:7px;align-items:center;margin:7px 0;font-size:12px}.mini-select-list{opacity:.5;pointer-events:none;max-height:180px}.mini-select-list.enabled{opacity:1;pointer-events:auto}.sticky-savebar{position:sticky;bottom:10px;display:flex;justify-content:flex-end;gap:9px;margin-top:15px;padding:10px;background:rgba(255,255,255,.92);backdrop-filter:blur(5px);border:1px solid var(--ux-border);border-radius:12px;z-index:5}.settings-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:16px;align-items:start}.settings-layout>section:last-child{grid-column:2}.compact-admin-link{max-width:820px}

/* Hours */
.compact-filter-row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.compact-filter-row label{display:grid;gap:5px;font-size:12px;font-weight:700}.compact-filter-row input{border:1px solid #dce4ee;border-radius:9px;padding:9px}.responsive-cards-table .table-head,.responsive-cards-table .table-row{display:grid;grid-template-columns:minmax(150px,1.4fr) repeat(5,minmax(78px,.75fr)) minmax(100px,.9fr);gap:8px;align-items:center}.responsive-cards-table .table-head{padding:8px 10px;color:var(--muted);font-size:11px;font-weight:800;background:#fafbfc;border-radius:9px}.responsive-cards-table .table-row{padding:12px 10px;border-bottom:1px solid #edf1f5}.responsive-cards-table .table-row:hover{background:#fafcff}.responsive-cards-table .table-row>span:first-child{display:grid}.responsive-cards-table small{color:var(--muted)}

/* Invoices */
.invoice-item-list{display:grid;gap:7px}.invoice-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;border:1px solid var(--ux-border);border-radius:10px;padding:10px 11px;cursor:pointer}.invoice-item:has(input:checked){border-color:#95bde9;background:#f5f9ff}.invoice-item.disabled{opacity:.55;cursor:not-allowed}.invoice-item>span{display:grid}.invoice-item small{color:var(--muted)}.invoice-item em{font-style:normal;color:#64768a;font-size:11px}

/* Calendar toolbar and full-week readability */
.ux-calendar-toolbar{padding:9px 11px;margin-bottom:10px}.ux-calendar-mainbar{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px}.ux-calendar-nav{display:flex;gap:5px}.ux-icon-btn{width:34px;height:34px;border:1px solid #dfe6ee;border-radius:8px;display:grid;place-items:center;background:#fff;color:#315574;font-size:18px}.ux-period-label{text-align:center;display:grid;gap:1px}.ux-period-label b{font-size:14px}.ux-period-label span{font-size:10px;color:var(--muted)}.ux-view-switch a{padding:7px 10px!important;font-size:11px}.ux-filter-popover{position:relative}.ux-filter-popover>summary{list-style:none;cursor:pointer;padding:8px 11px;border-radius:8px;font-size:12px}.ux-filter-popover>summary::-webkit-details-marker{display:none}.ux-filter-menu{position:absolute;left:0;top:42px;background:#fff;border:1px solid var(--ux-border);border-radius:12px;padding:13px;width:310px;box-shadow:0 18px 45px rgba(12,42,75,.17);z-index:35}.ux-check-list{display:grid;max-height:150px;overflow:auto;border:1px solid var(--ux-border);border-radius:8px}.ux-check-list label{padding:7px 8px;border-bottom:1px solid #edf1f5;font-size:12px}.ux-check-list label:last-child{border-bottom:0}.ux-calendar-panel{padding:5px!important}.v2-week-board:not(.is-day){gap:1px!important}.v2-week-board:not(.is-day) .v2-day-head{min-height:34px!important;padding:4px 1px!important;background:#f2f7fc!important}.v2-week-board:not(.is-day) .v2-day-head b{font-size:10px!important}.v2-week-board:not(.is-day) .v2-day-head span{font-size:9px!important}.v2-week-board:not(.is-day) .v2-trainer-head{height:27px!important}.v2-week-board:not(.is-day) .v2-trainer-head b{font-size:9px!important;font-weight:900!important}.v2-week-board:not(.is-day) .v2-lesson-block,.v2-week-board:not(.is-day) .v2-lesson-block.free.blank-slot,.v2-week-board:not(.is-day) .v2-lesson-block.blocked.blank-slot,.v2-week-board:not(.is-day) .v2-lesson-block.occupied{min-height:45px!important}.v2-week-board:not(.is-day) .v2-booking-card{padding:3px 1px!important;min-height:100%!important;justify-content:center!important}.v2-week-board:not(.is-day) .v2-booking-card strong{font-size:9px!important;line-height:1.1!important}.v2-week-board:not(.is-day) .v2-booking-card span{font-size:8.5px!important;line-height:1.1!important;font-weight:800}.v2-week-board:not(.is-day) .v2-conflict-tag{font-size:8px!important}.v2-week-board:not(.is-day) .v2-lesson-block.blocked.blank-slot{background:#e4e7eb!important}.ux-calendar-legend{margin-top:5px;font-size:11px}.ux-calendar-legend>summary{cursor:pointer;color:#5c6d81;padding:7px}.ux-copy-banner{top:64px}.v2-booking-dialog{max-width:720px}

/* Portals */
.mobile-portal-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}.mobile-portal-head span{color:var(--muted);font-size:12px}.mobile-portal-head h1{margin:2px 0;font-size:27px}.mobile-portal-head p{margin:0;color:var(--muted)}.portal-focus-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;margin-bottom:14px}.focus-card{background:#fff;border:1px solid var(--ux-border);border-radius:14px;padding:17px}.focus-label{font-size:11px;color:#6e7f91;font-weight:900}.focus-card>strong{display:block;font-size:24px;margin:6px 0 2px}.focus-card h2{margin:2px 0}.focus-card p{margin:0 0 12px;color:var(--muted)}.now-card{border-right:5px solid #2f80d7}.portal-panel{background:#fff;border:1px solid var(--ux-border);border-radius:14px;padding:16px}.mobile-tabs{width:100%;background:#eaf0f6;padding:4px;border-radius:11px;margin-bottom:10px}.mobile-tabs button{flex:1}.mobile-day-list{display:grid;gap:10px}.mobile-day{border:1px solid var(--ux-border);border-radius:11px;overflow:hidden}.mobile-day>header{display:flex;justify-content:space-between;padding:8px 10px;background:#f7f9fb}.mobile-lesson{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border-top:1px solid #edf1f5}.mobile-lesson time{font-weight:900}.mobile-lesson>div{display:grid}.mobile-lesson small{color:var(--muted)}.mobile-lesson>a{color:#1664ad;font-weight:800;font-size:12px}.day-empty{padding:13px;color:var(--muted);font-size:12px}.note-card{border-bottom:1px solid #edf1f5;padding:11px 0}.note-card small{color:var(--muted);margin-inline-start:7px}.note-card p{margin:5px 0;white-space:pre-wrap}.student-next-card{background:#fff;border:1px solid var(--ux-border);border-right:5px solid var(--blue);border-radius:14px;padding:17px;margin-bottom:10px}.student-next-main{display:flex;justify-content:space-between;align-items:center;gap:15px}.student-next-main h2{font-size:28px;margin:2px 0}.student-next-main p{margin:0;color:var(--muted)}.student-book-cta{width:100%;margin-bottom:12px;min-height:48px;font-size:15px}.student-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.student-summary-strip>span,.student-summary-strip>a{background:#fff;border:1px solid var(--ux-border);border-radius:11px;padding:11px;display:grid;gap:3px}.student-summary-strip small{color:var(--muted)}.student-week-panel{box-shadow:none}.student-slot-start{min-height:48px!important}.student-slot-start span{display:none!important}.student-booking-choice{display:flex;gap:10px;align-items:center;border:1px solid var(--ux-border);border-radius:10px;padding:11px;cursor:pointer}.student-booking-choice:has(input:checked){background:#f1f7ff;border-color:#90b9e8}.student-booking-choice>span{display:grid}.student-booking-choice small{color:var(--muted)}

/* Direction and accessibility */
input[type=email],input[type=tel],input[type=date],input[type=time],input[type=number],[dir=ltr]{direction:ltr;text-align:left}.field input:invalid:not(:placeholder-shown){border-color:#e3a3a7}.logo-preview img{max-height:70px;max-width:190px}.sidebar-backdrop{cursor:pointer}

@media(max-width:1200px){.ux-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:1fr}.settings-layout>section:last-child{grid-column:auto}.profile-grid.two-col{grid-template-columns:1fr}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-grid,.modern-permissions{grid-template-columns:repeat(2,minmax(0,1fr))}.responsive-cards-table .table-head,.responsive-cards-table .table-row{grid-template-columns:minmax(135px,1.3fr) repeat(5,minmax(68px,.7fr)) minmax(90px,.8fr)}}
@media(max-width:980px){.page-wrap{margin-right:0}.page-wrap main{padding:18px 12px 32px}.ux-dashboard-grid,.portal-focus-grid,.resource-selector-grid,.calendar-access-grid{grid-template-columns:1fr}.ux-agenda-row{grid-template-columns:55px minmax(0,1fr) auto}.ux-agenda-row small:last-child{display:none}.responsive-cards-table .table-head{display:none}.responsive-cards-table .table-row{grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--ux-border);border-radius:11px;margin-bottom:8px}.responsive-cards-table .table-row>span:first-child{grid-column:1/-1}.entity-meta{display:none}.ux-entity-card{grid-template-columns:minmax(0,1fr) auto}.ux-entity-stats{display:none}}
@media(max-width:720px){.page-wrap main{padding:14px 9px 28px}.page-head h1{font-size:23px}.ux-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-actions,.ux-page-actions{width:100%}.page-actions>*{flex:1}.entity-row{grid-template-columns:auto minmax(0,1fr) auto}.entity-row .status-pill{display:none}.permission-summary{display:none}.row-chevron{display:none}.choice-grid,.permission-grid,.modern-permissions{grid-template-columns:1fr}.student-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.student-next-main{align-items:flex-start}.ux-calendar-mainbar{grid-template-columns:auto 1fr auto}.ux-filter-popover{grid-column:1/-1}.ux-filter-menu{left:auto;right:0;width:min(310px,calc(100vw - 30px))}.ux-view-switch{display:none}.v2-week-board:not(.is-day) .v2-day-head b{font-size:8px!important}.v2-week-board:not(.is-day) .v2-day-head span{font-size:7.5px!important}.v2-week-board:not(.is-day) .v2-trainer-head b{font-size:7.5px!important}.v2-week-board:not(.is-day) .v2-booking-card strong{font-size:7.5px!important}.v2-week-board:not(.is-day) .v2-booking-card span{font-size:7px!important}.mobile-portal-head h1{font-size:23px}.portal-panel{padding:11px}.mobile-lesson{grid-template-columns:48px minmax(0,1fr) auto}.dialog-card,.ux-dialog-card,.v2-dialog-card,.student-reservation-panel{padding:15px}.schedule-day{grid-template-columns:1fr}.settings-line{align-items:flex-start}.ux-entity-stats{display:none}}
@media(max-width:480px){.ux-metric-grid{grid-template-columns:1fr 1fr}.ux-metric strong{font-size:19px}.topbar-brand small{display:none}.ux-quick-add-button{padding:8px 10px}.mobile-tabs button{font-size:11px;padding:8px 6px}.student-week-grid{grid-template-columns:1fr!important;overflow-x:visible}.student-day{display:block!important;min-width:0}.student-day-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.student-no-slot{grid-column:1/-1}.responsive-cards-table .table-row{grid-template-columns:1fr 1fr}.profile-hero{align-items:flex-start}.profile-hero .secondary{display:none}}
/* dev.22 unified action markers: functional hierarchy without decorative emoji */
.v2-appointment-action .action-mark{width:7px;height:7px;border-radius:3px;border:1.5px solid currentColor;opacity:.7;flex:0 0 auto}.v2-appointment-action:hover .action-mark{background:currentColor}.v2-appointment-action.danger .action-mark{border-radius:50%}

/* dev.22.1 mobile test */
.mobile-test-banner{margin:10px 0 2px;text-align:right}.mobile-test-banner span{display:block;margin-top:3px}.student-week-grid .student-day{visibility:visible}

/* dev.23 — flexible planning, drag/drop and compact appointment dialogs */
.flash.warning{background:#fff0f0;color:#b4232c;border-color:#efb8bd}
.resource-warning{border-color:#df3b45!important;color:#b4232c!important;background:#fff7f7!important;box-shadow:0 0 0 2px rgba(207,48,58,.08)!important}
.calendar-move-notice{position:fixed;left:22px;bottom:22px;z-index:120;background:#0d7a48;color:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 12px 28px rgba(0,0,0,.18);font-weight:800;font-size:13px;max-width:min(520px,calc(100vw - 44px))}.calendar-move-notice.warning{background:#bb2934}.calendar-move-notice[hidden]{display:none!important}
.booking-drop-target.drag-over{outline:2px solid #1676d2!important;outline-offset:-2px!important;background:#e9f4ff!important}.v2-booking-card.is-dragging{opacity:.38;transform:scale(.98);cursor:grabbing}.v2-booking-card[draggable=true]{cursor:grab}
.compact-planning-dialog{width:min(680px,calc(100vw - 24px))!important;max-width:680px!important}.compact-booking-card{padding:14px 15px!important;max-height:none!important;overflow:visible!important}.compact-dialog-head{margin-bottom:10px!important}.compact-dialog-head h2{font-size:19px!important}.compact-dialog-head small{font-size:11px}.compact-booking-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px 10px!important}.compact-booking-grid .field{gap:4px}.compact-booking-grid .field label{font-size:11px}.compact-booking-grid .field input,.compact-booking-grid .field select{padding:8px 9px;border-radius:8px;min-height:36px}.compact-submit-row{display:flex!important;align-items:center;gap:10px}.compact-submit-row button{min-width:150px}.compact-submit-row small{font-size:10px;color:#7a8798}.compact-alert{padding:8px 10px!important;margin:6px 0 9px!important;font-size:11px}.compact-alert ul{margin:4px 0 0;padding-inline-start:18px}.compact-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}.compact-edit-grid .field.full{grid-column:1/-1}.compact-switch{align-self:end;padding:7px!important;min-height:36px}.compact-edit-card{width:min(660px,calc(100vw - 24px))!important}
.compact-detail-dialog{width:min(620px,calc(100vw - 24px))!important;max-width:620px!important}.compact-detail-card{padding:12px!important;max-height:none!important;overflow:visible!important}.compact-detail-hero{padding:12px 14px!important;border-radius:12px!important;margin-bottom:9px!important}.compact-detail-hero h2{font-size:23px!important;margin:3px 0 0!important}.compact-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;margin:0!important}.compact-detail-grid>div{padding:8px 9px!important;border-radius:9px!important}.compact-detail-grid small{font-size:10px!important}.compact-detail-grid b{font-size:13px!important}.compact-detail-note{display:flex!important;gap:8px!important;align-items:center!important;padding:7px 9px!important;margin:8px 0!important}.compact-detail-note span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-action-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;margin-top:9px!important}.compact-action-grid>*{min-width:0}.compact-action-grid .v2-appointment-action{min-height:37px!important;padding:8px 9px!important;border-radius:8px!important;justify-content:center!important;font-size:12px!important}.compact-action-grid form{margin:0}.compact-action-grid .v2-detail-close{min-height:37px}.compact-action-menu{position:relative}.compact-action-menu>summary{list-style:none}.compact-action-menu>summary::-webkit-details-marker{display:none}.compact-action-popover{position:absolute;z-index:20;inset-inline-end:0;top:42px;background:#fff;border:1px solid #dfe6ee;border-radius:10px;padding:8px;box-shadow:0 12px 30px rgba(0,0,0,.14);min-width:210px}.compact-action-popover form{display:grid;gap:5px}.compact-action-popover button{width:100%}
@media(max-width:720px){.compact-booking-card,.compact-detail-card{max-height:88vh!important;overflow:auto!important}.compact-booking-grid,.compact-edit-grid{grid-template-columns:1fr!important}.compact-booking-grid .field.full,.compact-edit-grid .field.full{grid-column:auto!important}.compact-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.compact-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.compact-submit-row{display:grid!important}.calendar-move-notice{left:12px;bottom:12px;max-width:calc(100vw - 24px)}}

/* =====================================================================
   dev.24 — Leskaart v2 + one-screen lesson close
   ===================================================================== */
.progress-track{height:9px;background:#e8eef4;border-radius:999px;overflow:hidden}.progress-track>i{display:block;height:100%;background:linear-gradient(90deg,#df5a55,#eba13a,#7fca73,#2e9c48);border-radius:inherit;min-width:0}.leskaart-progress-overview{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;margin-bottom:14px}.leskaart-progress-card{background:#fff;border:1px solid var(--ux-border);border-radius:14px;padding:14px;display:grid;gap:6px}.leskaart-progress-card small,.leskaart-progress-card span{color:var(--muted)}.leskaart-progress-card>b{font-size:25px}.progress-delta,.topic-delta{font-style:normal;font-weight:900}.progress-delta.up,.topic-delta.up{color:#218440}.progress-delta.down,.topic-delta.down{color:#c63d3d}.leskaart-score-form-v2{display:grid;grid-template-columns:auto minmax(150px,260px);gap:10px;align-items:center}.score-buttons{display:flex;gap:5px;direction:ltr}.leskaart-inline-note,.finish-topic-note{min-height:36px;padding:8px 10px}.leskaart-topic-row.read-only{grid-template-columns:minmax(220px,1fr) 52px}.leskaart-readonly-value{display:grid;place-items:center}.leskaart-topic-note-view{grid-column:1/-1;background:#f7f9fb;border-radius:8px;padding:8px 10px;color:#526579;font-size:12px}.review-history-list{display:grid;gap:8px}.review-history-row{display:flex;justify-content:space-between;gap:14px;border:1px solid #e5ebf1;border-radius:10px;padding:11px}.review-history-row div{display:grid;gap:3px}.review-history-row small{color:var(--muted)}.review-history-row p{margin:3px 0 0;color:#43576a}.review-history-row>strong{font-size:19px;color:#1e629f}.student-progress-card{background:#fff;border:1px solid var(--ux-border);border-radius:14px;padding:15px;margin-bottom:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.student-progress-card h2{margin:2px 0;font-size:27px}.student-progress-card p{margin:5px 0 0;color:var(--muted)}.student-last-review{grid-column:1/-1;border-top:1px solid #edf1f5;padding-top:10px;display:grid;grid-template-columns:auto 1fr;gap:4px 10px}.student-last-review span{color:var(--muted)}.student-last-review p{grid-column:1/-1;margin:3px 0}.mobile-lesson-actions{display:flex!important;align-items:center;gap:6px}.mobile-lesson-actions a{font-size:11px;font-weight:850;color:#1664ad}.lesson-finish-link{background:#eaf4ff;padding:5px 7px;border-radius:7px}.lesson-finish-head{margin-bottom:12px}.lesson-finish-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.finish-summary-card{background:#fff;border:1px solid var(--ux-border);border-radius:12px;padding:12px;display:grid;gap:4px}.finish-summary-card small,.finish-summary-card span{color:var(--muted)}.finish-summary-card b{font-size:18px}.finish-meta-panel,.lesson-finish-leskaart{box-shadow:none}.lesson-finish-meta{grid-template-columns:2fr 1fr}.finish-topic-row{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(290px,1.1fr) minmax(180px,.8fr);gap:10px;align-items:center;padding:8px;border-bottom:1px solid #e8edf3}.finish-topic-name{display:grid;grid-template-columns:42px 1fr;gap:2px 7px;align-items:center}.finish-topic-name .topic-code{grid-row:1/3;direction:ltr;text-align:center;font-weight:900;color:#597088}.finish-topic-name small{color:var(--muted);font-size:10px}.finish-score-picker{display:flex;direction:ltr;gap:4px}.finish-score-option{cursor:pointer}.finish-score-option input{position:absolute;opacity:0;pointer-events:none}.finish-score-option span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;font-weight:900;color:#fff;border:1px solid rgba(0,0,0,.1)}.finish-score-option input:checked+span{outline:3px solid #173b67;outline-offset:1px}.finish-score-option.s6 span,.finish-score-option.s7 span{color:#183b16}.lesson-finish-sticky-actions{position:sticky;bottom:8px;background:#ffffffed;backdrop-filter:blur(8px);border:1px solid var(--ux-border);border-radius:13px;padding:9px;display:flex;justify-content:flex-end;gap:8px;margin-top:14px;z-index:4}
@media(max-width:1000px){.lesson-finish-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finish-topic-row{grid-template-columns:1fr}.finish-score-picker{overflow-x:auto;padding:3px 0}.finish-topic-note{width:100%}.leskaart-score-form-v2{grid-template-columns:1fr}.leskaart-inline-note{width:100%}}
@media(max-width:720px){.leskaart-progress-overview{grid-template-columns:1fr}.student-progress-card{grid-template-columns:1fr}.student-progress-card>a{width:100%}.lesson-finish-summary-grid{grid-template-columns:1fr 1fr}.lesson-finish-meta{grid-template-columns:1fr}.finish-score-option span{min-width:31px}.lesson-finish-sticky-actions>*{flex:1}.review-history-row{align-items:flex-start}.leskaart-topic-row.read-only{grid-template-columns:1fr auto}}
@media(max-width:420px){.lesson-finish-summary-grid{grid-template-columns:1fr}.finish-score-picker{gap:3px}.finish-score-option span{width:29px;height:29px}.leskaart-legend b{width:100%;margin-top:2px}}
.finish-score-option.s1 span{background:#981b2b}.finish-score-option.s2 span{background:#c4323c}.finish-score-option.s3 span{background:#e65b58}.finish-score-option.s4 span{background:#c86400}.finish-score-option.s5 span{background:#e88612}.finish-score-option.s6 span{background:#f2a83b}.finish-score-option.s7 span{background:#9bd67d}.finish-score-option.s8 span{background:#2e9c48}
