.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,Apple Color Emoji,Helvetica,Arial,sans-serif}.driver-popover-title{zoom:1;margin:0;font:700 19px/1.5 sans-serif;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font:400 14px/1.5 sans-serif}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font:12px/1.3 sans-serif;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}.driver-popover.dsms-tour{--_pad: 18px;background:var(--surface, #fff);color:var(--text, #1f2d3a);border:1px solid var(--border, #e3e9f0);border-radius:var(--radius-lg, 14px);box-shadow:var(--shadow-lg, 0 18px 48px rgba(15, 30, 42, .22));padding:0;max-width:344px;min-width:264px;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;animation:dsms-tour-pop .22s cubic-bezier(.4,0,.2,1)}@keyframes dsms-tour-pop{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}.driver-popover.dsms-tour:before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--primary, #128a45),var(--accent, #25d366))}.driver-popover.dsms-tour .driver-popover-title{margin:0;padding:16px var(--_pad) 0;font-size:16px;font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--text, #1f2d3a)}.driver-popover.dsms-tour .driver-popover-description{margin:0;padding:7px var(--_pad) 2px;font-size:13.5px;line-height:1.55;color:var(--muted, #64748b)}.driver-popover.dsms-tour .driver-popover-footer{margin:10px 0 0;padding:12px var(--_pad) 16px;gap:10px;align-items:center;border-top:1px solid var(--border, #e3e9f0);background:var(--surface-2, #f7fafc)}.driver-popover.dsms-tour .driver-popover-progress-text{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted-soft, #94a3b8)}.driver-popover.dsms-tour .driver-popover-footer button{padding:8px 15px;border-radius:var(--radius-sm, 7px);border:1px solid var(--border-strong, #cfd8e3);background:var(--surface, #fff);color:var(--text, #1f2d3a);font-size:13px;font-weight:600;text-shadow:none;transition:background .18s,border-color .18s,color .18s,transform .12s}.driver-popover.dsms-tour .driver-popover-footer button:hover{background:var(--surface, #fff);border-color:var(--muted-soft, #94a3b8)}.driver-popover.dsms-tour .driver-popover-footer button:active{transform:translateY(1px)}.driver-popover.dsms-tour .driver-popover-prev-btn{color:var(--muted, #64748b)}.driver-popover.dsms-tour .driver-popover-prev-btn:hover{background:var(--primary-100, #e2f8ec);border-color:var(--primary-100, #e2f8ec);color:var(--primary-dark, #0f7a3c)}.driver-popover.dsms-tour .driver-popover-next-btn{background:var(--primary, #128a45);border-color:transparent;color:#fff;box-shadow:var(--shadow-xs, 0 1px 2px rgba(15, 30, 42, .06))}.driver-popover.dsms-tour .driver-popover-next-btn:hover{background:var(--primary-dark, #0f7a3c);border-color:transparent;color:#fff}.driver-popover.dsms-tour .driver-popover-close-btn{top:12px;right:12px;width:26px;height:26px;color:var(--muted-soft, #94a3b8);font-size:22px;line-height:1;border-radius:50%;transition:background .18s,color .18s}.driver-popover.dsms-tour .driver-popover-close-btn:hover{background:var(--surface-2, #f7fafc);color:var(--text, #1f2d3a)}.driver-popover.dsms-tour .driver-popover-arrow{border-color:var(--surface, #fff)}.driver-active-element{border-radius:var(--radius-sm, 7px)!important;outline:2px solid var(--accent, #25d366)!important;outline-offset:3px}.dsms-tour-hero{display:flex;align-items:center;gap:10px;margin:2px 0 12px;padding-bottom:12px;border-bottom:1px solid var(--border, #e3e9f0)}.dsms-tour-hero img{width:40px;height:40px;border-radius:9px;box-shadow:var(--shadow-xs, 0 1px 2px rgba(15, 30, 42, .06))}.dsms-tour-hero strong{font-size:14px;font-weight:700;color:var(--text, #1f2d3a);line-height:1.2}.dsms-tour-hero span{display:block;font-size:11.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--primary, #128a45)}.dsms-tour-note{display:inline-block;margin-top:10px;font-size:12px;font-weight:600;color:var(--muted-soft, #94a3b8)}@keyframes wsFadeInUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes wsHeroReveal{0%{opacity:0;transform:translateY(40px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes wsCountPop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}.ws .skip-link{position:absolute;left:12px;top:-60px;z-index:60;padding:10px 16px;border-radius:8px;background:var(--brand-deep);color:#fff;font-weight:700;transition:top .16s ease}.ws .skip-link:focus{top:12px;outline:none;box-shadow:0 0 0 3px #25d36659}.ws{--ink: #241a2e;--muted: #6a6475;--line: #e5e1ea;--wash: #f7f6fa;--brand: #25d366;--brand-strong: #1eb455;--brand-ink: #128a45;--brand-soft: #e2f8ec;--brand-deep: #35194d;--accent: #25d366;--danger: #b42318;--success: #00875a;--shadow: 0 8px 22px rgba(36, 27, 46, .1);font-family:Poppins,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--wash);line-height:1.5;font-size:14px}.ws *,.ws *:before,.ws *:after{box-sizing:border-box}.ws [id]{scroll-margin-top:76px}.ws img{display:block;max-width:100%}.ws a{color:inherit;text-decoration:none}.ws button,.ws input,.ws select,.ws textarea{font:inherit}.ws h1,.ws h2,.ws h3,.ws p{margin-top:0}.ws h1,.ws h2,.ws h3{color:inherit}.ws h1{max-width:760px;margin-bottom:18px;font-size:5.2rem;line-height:1.04}.ws h2{margin-bottom:12px;font-size:3rem;line-height:1.08}.ws h3{margin-bottom:8px;font-size:1.08rem}.ws .lead{max-width:680px;color:var(--muted);font-size:1.12rem}.ws .eyebrow{margin:0 0 8px;color:var(--brand-ink);font-size:.78rem;font-weight:800;text-transform:uppercase}.ws .site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(215,221,227,.85);background:#fffffff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:box-shadow .35s ease,background .35s ease}.ws .site-header.scrolled{box-shadow:0 4px 24px #091e4214}.ws .nav{display:flex;align-items:center;justify-content:space-between;width:min(1160px,calc(100% - 32px));margin:0 auto;min-height:72px;gap:24px}.ws .brand{display:inline-flex;align-items:center;gap:10px;min-width:0;font-weight:800;color:var(--ink)}.ws .brand>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws .brand-mark{width:38px;height:38px;flex-shrink:0;border-radius:50%;background:url(/logos/logoicon.png) center / cover no-repeat;font-size:0;color:transparent;text-indent:-9999px;overflow:hidden}.ws .brand-logo{display:block;height:44px;width:auto;max-width:100%;transition:transform .2s ease}.ws .brand:hover .brand-logo{transform:scale(1.03)}.ws .nav-links{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:.95rem}.ws .nav-links a{position:relative;padding:8px 0;transition:color .25s ease}.ws .nav-links a:after{content:"";position:absolute;right:0;bottom:0;left:0;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .16s ease}.ws .nav-links a:hover:after,.ws .nav-links a.active:after{transform:scaleX(1)}.ws .nav-links a.active{color:var(--brand-ink);font-weight:700}.ws .nav-actions{display:flex;align-items:center;gap:10px}.ws .nav-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;width:42px;height:42px;gap:5px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}.ws .nav-toggle span{display:block;width:18px;height:2px;border-radius:999px;background:currentColor;transition:transform .18s ease,opacity .18s ease}.ws .nav.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}.ws .nav.menu-open .nav-toggle span:nth-child(2){opacity:0}.ws .nav.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.ws .button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:8px;background:var(--brand);color:#fff;font-weight:700;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.ws .button:hover{transform:translateY(-1px);background:var(--brand-strong);box-shadow:0 12px 24px #091e422e}.ws .button.secondary{border-color:var(--line);background:#fff;color:var(--ink)}.ws .button.secondary:hover{background:var(--brand-soft);border-color:#25d36666;color:var(--brand-ink)}.ws .hero .button.secondary:hover,.ws .professional-band .button.secondary:hover{background:#ffffff38;border-color:#ffffff8c;color:#fff}.ws .button.full{width:100%}.ws .button:focus-visible,.ws .nav-links a:focus-visible,.ws .brand:focus-visible,.ws .link:focus-visible,.ws .link-button:focus-visible,.ws .site-footer a:focus-visible,.ws .nav-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px #25d36666;border-radius:8px}.ws .hero :focus-visible,.ws .site-footer :focus-visible,.ws .professional-band :focus-visible{box-shadow:0 0 0 3px #ffffffb3}.ws .section{width:min(1160px,calc(100% - 32px));margin:0 auto;padding:70px 0}.ws .section-header{max-width:720px;margin-bottom:28px}.ws .grid{display:grid;gap:18px}.ws .grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.ws .grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.ws .grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.ws .card{min-height:100%;padding:24px;border:1px solid var(--line);border-radius:8px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.ws .card:hover{border-color:#25d36659;box-shadow:0 14px 35px #17212b14;transform:translateY(-2px)}.ws .card strong{color:var(--brand-ink)}.ws .package-card{display:flex;flex-direction:column}.ws .package-card .package-card__desc{margin-bottom:20px}.ws .package-card .button{margin-top:auto}.ws .split{display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;align-items:start}.ws .form-panel{padding:24px;border:1px solid rgba(25,33,48,.06);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.ws .field{display:grid;gap:7px;margin-bottom:16px}.ws .field label{color:#4c5664;font-size:.82rem;font-weight:700}.ws .field input,.ws .field select,.ws .field textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:11px 12px;color:var(--ink);background:#fff;transition:border-color .16s ease,box-shadow .16s ease}.ws .field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234c5664' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}.ws .field textarea{min-height:120px}.ws .field input:focus,.ws .field select:focus,.ws .field textarea:focus{outline:none;border-color:#25d3668f;box-shadow:0 0 0 3px #25d36624}.ws .field textarea{min-height:120px;resize:vertical}.ws .form-message{min-height:24px;margin:12px 0 0;color:var(--muted)}.ws .form-message.success{color:var(--success)}.ws .form-message.error{color:var(--danger)}.ws .site-footer{border-top:1px solid var(--line);background:var(--brand-deep);color:#fff}.ws .footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:32px;width:min(1160px,calc(100% - 32px));margin:0 auto;padding:48px 0 32px}.ws .footer-logo{display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;font-weight:800;color:#fff}.ws .footer-brand p{max-width:40ch;color:#ffffffb3;font-size:.95rem}.ws .footer-col{display:flex;flex-direction:column;gap:9px}.ws .footer-col h2{margin:0 0 6px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff9}.ws .footer-col a{color:#ffffffd1;font-size:.95rem;transition:color .16s ease}.ws .footer-col a:hover{color:#fff}.ws .footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;width:min(1160px,calc(100% - 32px));margin:0 auto;padding:18px 0 28px;border-top:1px solid rgba(255,255,255,.12);color:#fff9;font-size:.88rem}.ws .footer-contact{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-style:normal}.ws .footer-contact a{color:#ffffffdb;text-decoration:underline;text-underline-offset:3px}.ws .hero{min-height:660px;display:grid;align-items:end;color:#fff;background:linear-gradient(90deg,#35194deb,#35194d9e),url(https://images.unsplash.com/photo-1449965408869-eaa3f722e40d?auto=format&fit=crop&w=1800&q=80) center/cover}.ws .hero-inner{width:min(1160px,calc(100% - 32px));margin:0 auto;padding:120px 0 86px;text-align:left}.ws .hero h1{color:#fff}.ws .hero .lead{color:#ffffffdb}.ws .hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.ws .hero .button.secondary{border-color:#ffffff52;background:#ffffff1f;color:#fff}.ws .stats-band{background:var(--brand-deep);color:#fff}.ws .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(1160px,calc(100% - 32px));margin:0 auto}.ws .stat{padding:28px 22px;border-left:1px solid rgba(255,255,255,.14)}.ws .stat:last-child{border-right:1px solid rgba(255,255,255,.14)}.ws .stat strong{display:block;font-size:1.8rem}.ws .stat span{color:#ffffffe0}.ws .wash{background:var(--wash)}.ws .media-card{overflow:hidden;padding:0;display:flex;flex-direction:column}.ws .media-card-img{aspect-ratio:16 / 10;overflow:hidden;background:linear-gradient(135deg,var(--brand),var(--brand-strong))}.ws .media-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.16,1,.3,1)}.ws .media-card:hover .media-card-img img{transform:scale(1.05)}.ws .media-card .course-code,.ws .media-card h3,.ws .media-card p{margin-left:24px;margin-right:24px}.ws .media-card .course-code{margin-top:22px}.ws .media-card p{margin-bottom:18px}.ws .media-card .media-cta{margin:auto 24px 24px}.ws .course-code{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 13px;margin-bottom:18px;border-radius:8px;background:var(--brand-soft);color:var(--brand-ink);font-weight:800;font-size:.82rem;letter-spacing:.03em;white-space:nowrap}.ws .training-section{padding-top:26px}.ws .training-showcase{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);gap:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.ws .training-showcase>img{width:100%;height:100%;min-height:430px;object-fit:cover}.ws .training-panel{display:grid;align-content:center;padding:42px}.ws .training-panel h3{margin-bottom:12px;font-size:2.7rem;line-height:1.08}.ws .training-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px}.ws .training-metrics div{padding:16px;border:1px solid var(--line);border-radius:8px;background:#f8fafb}.ws .training-metrics strong{display:block;color:var(--brand-ink);font-size:1.25rem}.ws .training-metrics span{display:block;margin-top:4px;color:#586273;font-size:.86rem}.ws .content-type{display:inline-flex;margin-bottom:14px;padding:5px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);font-size:.76rem;font-weight:800;text-transform:capitalize}.ws .steps{counter-reset:step}.ws .step{position:relative;padding-left:64px}.ws .step:before{counter-increment:step;content:counter(step);position:absolute;top:24px;left:24px;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;border:1px solid #bfeccb;background:var(--brand-soft);color:var(--brand-ink);font-weight:900}.ws .professional-band{background:var(--brand-deep);color:#fff}.ws .professional-band h2,.ws .professional-band h3{color:#fff}.ws .professional-band .lead,.ws .professional-band p{color:#ffffffc2}.ws .professional-band .card{border-color:#ffffff1f;background:#ffffff12;color:#fff}.ws .professional-band .card:hover{border-color:#ffffff47;background:#ffffff1f;box-shadow:0 14px 35px #00000040}.ws .professional-band .card h3{color:#fff}.ws .professional-band .card .price strong,.ws .professional-band .eyebrow{color:var(--accent)}.ws .price{display:flex;align-items:baseline;gap:6px;margin:10px 0 18px}.ws .price strong{font-size:2rem}.ws .page-hero{background:linear-gradient(90deg,#35194ded,#35194d99),url(https://images.unsplash.com/photo-1521791055366-0d553872125f?auto=format&fit=crop&w=1600&q=80) center/cover;color:#fff}.ws .page-hero .section{padding:86px 0}.ws .page-hero h1{color:#fff}.ws .page-hero .lead{color:#ffffffd1}.ws .content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ws .content-card,.ws .content-empty{padding:24px;border:1px solid var(--line);border-radius:8px;background:#fff}.ws .content-card.featured{border-color:#25d3666b;box-shadow:0 18px 38px #091e421a}.ws .content-card a,.ws .content-card .link{color:var(--brand-ink);font-weight:800;cursor:pointer;background:none;border:0;padding:0}.ws .contact-location-card{margin-top:28px;padding:22px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.ws .contact-location-card h2{font-size:1.35rem}.ws .contact-details{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.ws .contact-details li{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:.95rem;color:var(--ink)}.ws .contact-details .cd-label{min-width:64px;color:var(--muted);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;align-self:center}.ws .contact-details a{color:var(--brand-ink);font-weight:600}.ws .contact-details a:hover{color:var(--brand-ink);text-decoration:underline}.ws .location-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.ws .map-panel{overflow:hidden;min-height:360px;border:1px solid var(--line);border-radius:8px;background:#f1f2f4;box-shadow:var(--shadow)}.ws .map-panel.compact{min-height:260px;margin-top:18px}.ws .map-panel iframe{width:100%;height:100%;min-height:inherit;border:0}.ws .map-placeholder{display:grid;place-items:center;min-height:260px;padding:24px;color:var(--muted);font-weight:700}.ws .hero-animated .eyebrow{animation:wsHeroReveal .8s cubic-bezier(.16,1,.3,1) .1s both}.ws .hero-animated h1{animation:wsHeroReveal .9s cubic-bezier(.16,1,.3,1) .25s both}.ws .hero-animated .lead{animation:wsHeroReveal .8s cubic-bezier(.16,1,.3,1) .45s both}.ws .hero-animated .hero-actions{animation:wsFadeInUp .8s cubic-bezier(.16,1,.3,1) .6s both}.ws .stat-animated .stat{animation:wsCountPop .5s cubic-bezier(.16,1,.3,1) both}.ws .stat-animated .stat:nth-child(1){animation-delay:.15s}.ws .stat-animated .stat:nth-child(2){animation-delay:.25s}.ws .stat-animated .stat:nth-child(3){animation-delay:.35s}.ws .stat-animated .stat:nth-child(4){animation-delay:.45s}.ws .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.ws .reveal.visible{opacity:1;transform:none}@media (max-width: 1180px){.ws .nav,.ws .section,.ws .footer-inner{width:min(100% - 40px,1040px)}.ws h1{font-size:4.4rem}.ws h2{font-size:2.65rem}.ws .hero{min-height:620px}.ws .hero-inner,.ws .stats{width:min(100% - 40px,1040px);padding:108px 0 78px}.ws .stats{padding:0}.ws .training-panel{padding:34px}.ws .training-panel h3{font-size:2.35rem}}@media (max-width: 1024px){.ws h1{font-size:4rem}.ws h2{font-size:2.5rem}.ws .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ws .stat:nth-child(2),.ws .stat:nth-child(4){border-right:1px solid rgba(255,255,255,.14)}.ws .training-showcase{grid-template-columns:1fr}.ws .training-showcase>img{min-height:360px;max-height:460px}.ws .content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ws .footer-grid{grid-template-columns:1fr 1fr}.ws .footer-brand{grid-column:1 / -1}}@media (max-width: 960px){.ws .grid.four,.ws .grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.ws .split{grid-template-columns:1fr;gap:24px}.ws h1{font-size:3.7rem}.ws h2{font-size:2.35rem}}@media (max-width: 760px){.ws .nav{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;width:min(100% - 24px,100%);padding:12px 0;min-height:auto}.ws .nav-toggle{display:inline-flex;grid-column:2;grid-row:1}.ws .brand{grid-column:1;grid-row:1;min-width:0}.ws .nav-links,.ws .nav-actions{display:none;grid-column:1 / -1;width:100%}.ws .nav.menu-open .nav-links{display:grid;gap:6px;padding:10px 0 4px}.ws .nav.menu-open .nav-actions{display:grid;grid-template-columns:1fr;gap:8px;padding-bottom:8px}.ws .nav-links a{min-height:40px;padding:9px 11px;border-radius:8px;background:#f7f8f9}.ws .nav-links a:after{display:none}.ws .nav-links a.active{background:var(--brand-soft)}.ws .nav-actions .button{width:100%;min-height:40px}.ws .grid.three,.ws .grid.four,.ws .grid.two,.ws .split,.ws .stats,.ws .training-showcase,.ws .content-grid{grid-template-columns:1fr}.ws .section{padding:48px 0}.ws h1{font-size:3rem;line-height:1.08}.ws h2{font-size:2rem}.ws .lead{font-size:1rem}.ws .hero{min-height:560px;background-position:58% center}.ws .hero-inner{width:min(100% - 28px,100%);padding:86px 0 62px}.ws .hero-actions{flex-direction:column;align-items:stretch}.ws .stats{width:100%}.ws .stat{padding:22px 16px;border-left:0;border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}.ws .training-panel{padding:24px 18px}.ws .training-panel h3{font-size:2rem}.ws .training-metrics{grid-template-columns:1fr}.ws .page-hero .section{padding:58px 0}.ws .footer-grid{grid-template-columns:1fr;gap:26px;padding-top:38px}.ws .footer-brand{grid-column:auto}.ws [id]{scroll-margin-top:60px}}@media (max-width: 560px){.ws .nav,.ws .section,.ws .footer-grid,.ws .footer-bottom{width:min(100% - 28px,100%)}.ws .card,.ws .form-panel{padding:18px}.ws .step{padding-left:56px}.ws .step:before{top:18px;left:16px}.ws h1{font-size:2.35rem}.ws h2{font-size:1.72rem}.ws .hero{min-height:520px}.ws .hero-actions .button{width:100%}}@media (prefers-reduced-motion: reduce){.ws .hero-animated .eyebrow,.ws .hero-animated h1,.ws .hero-animated .lead,.ws .hero-animated .hero-actions,.ws .stat-animated .stat,.ws .reveal{animation:none!important;opacity:1!important;transform:none!important;transition:none!important}}.ws.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1100px 560px at 112% -12%,rgba(37,211,102,.14),transparent 60%),radial-gradient(900px 520px at -12% 112%,rgba(92,48,133,.16),transparent 55%),var(--wash)}.ws .auth-card{width:min(940px,100%);display:grid;grid-template-columns:1.02fr 1fr;align-items:stretch;background:#fff;border:1px solid rgba(25,33,48,.06);border-radius:16px;overflow:hidden;box-shadow:0 30px 70px #091e422e}.ws .auth-aside{position:relative;display:flex;flex-direction:column;gap:26px;padding:42px 40px;color:#fff;background:linear-gradient(165deg,#35194df0,#5c3085d9),url(https://images.unsplash.com/photo-1449965408869-eaa3f722e40d?auto=format&fit=crop&w=1200&q=80) center/cover}.ws .auth-aside-body{margin-top:auto}.ws .auth-aside .eyebrow{color:#c7e59b}.ws .auth-aside h2{margin-bottom:10px;font-size:2.1rem;line-height:1.12;color:#fff}.ws .auth-aside-body>p{color:#ffffffd9}.ws .auth-points{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:12px}.ws .auth-points li{position:relative;padding-left:28px;color:#ffffffeb;font-size:.92rem}.ws .auth-points li:before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;background:var(--accent)}.ws .auth-points li:after{content:"";position:absolute;left:6px;top:5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.ws .auth-aside-foot{margin:0;color:#fff9;font-size:.8rem}.ws .auth-main{display:grid;align-content:center;padding:46px 42px}.ws .auth-brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;color:inherit}.ws .auth-brand-mobile{display:none;margin-bottom:22px;color:var(--ink)}.ws .auth-main h1{font-size:1.95rem;margin-bottom:6px}.ws .auth-main .lead{margin-bottom:24px;font-size:1rem}.ws .auth-foot{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.ws .auth-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.ws .auth-back{color:var(--muted);font-weight:600}.ws .auth-back:hover{color:var(--brand-ink)}.ws .link-button.subtle{color:var(--muted);font-weight:600}.ws .link-button.subtle:hover{color:var(--brand-ink)}.ws .method-options{display:grid;gap:12px;margin-bottom:22px}.ws .method-option{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:15px 16px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.ws .method-option:hover{border-color:#25d36673}.ws .method-option input{position:absolute;opacity:0;pointer-events:none}.ws .method-option.selected{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 3px #25d3661f}.ws .method-option.disabled{opacity:.55;cursor:not-allowed;background:var(--wash)}.ws .method-option.disabled:hover{border-color:var(--line)}.ws .method-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--brand-soft);color:var(--brand-ink)}.ws .method-option.selected .method-icon{background:#fff}.ws .method-text{display:grid;gap:2px;min-width:0}.ws .method-text strong{color:var(--ink);font-size:.98rem}.ws .method-text span{color:var(--muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws .method-check{position:relative;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);transition:border-color .16s ease,background .16s ease}.ws .method-option.selected .method-check{border-color:var(--brand);background:var(--brand)}.ws .method-option.selected .method-check:after{content:"";position:absolute;left:50%;top:48%;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%,-55%) rotate(45deg)}.ws .otp-input{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.ws .otp-box{width:100%;min-height:56px;padding:0;text-align:center;font-size:1.5rem;font-weight:700;color:var(--ink);border:1.5px solid var(--line);border-radius:12px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}.ws .otp-box:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #25d36629}.ws .otp-countdown{font-size:.82rem;color:var(--muted);margin-top:8px;text-align:center}.ws .otp-countdown.urgent{color:var(--danger);font-weight:600}.ws .link-button:disabled{color:var(--muted);cursor:not-allowed}@media (max-width: 720px){.ws.auth-shell{padding:18px}.ws .auth-card{grid-template-columns:1fr;max-width:460px}.ws .auth-aside{display:none}.ws .auth-brand-mobile{display:inline-flex}.ws .auth-main{padding:30px 24px}.ws .otp-input{gap:8px}.ws .otp-box{min-height:50px;font-size:1.3rem}}.ws .alert{margin-bottom:14px;padding:11px 13px;border-radius:8px;font-size:.9rem}.ws .alert-error{background:#fbe9e7;color:var(--danger)}.ws .alert-info{background:var(--brand-soft);color:var(--brand-ink)}.ws .link-button{background:none;border:0;padding:0;color:var(--brand-ink);font-weight:700;cursor:pointer}.ws .field-hint{color:var(--muted);font-size:.78rem}.ws .link{background:none;border:0;padding:0;color:var(--brand-ink);font-weight:700;cursor:pointer}.ws .link:hover{color:var(--brand-ink)}.ws .input-affix{position:relative;display:flex}.ws .input-affix input{padding-right:60px}.ws .input-affix .affix-btn{position:absolute;top:0;right:0;height:100%;min-width:52px;display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:#4c5664;font-size:.82rem;font-weight:700;cursor:pointer}.ws .input-affix .affix-btn:hover{color:var(--brand-ink)}.ws .update-detail{max-width:760px}.ws .update-back{display:inline-flex;margin-bottom:16px}.ws .update-date{color:var(--muted)}.ws .update-body{white-space:pre-wrap}.table-searchbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--border);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;background:linear-gradient(180deg,#fff,var(--surface-2));box-shadow:var(--shadow-sm)}.table-searchbar+.table-wrap,.table-searchbar+.table-wrapper,.table-searchbar+.rr-table-wrap{border-top-left-radius:0;border-top-right-radius:0}.table-searchbar-field{flex:1;min-width:220px;max-width:480px;display:flex;align-items:center;gap:9px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:0 12px;color:var(--muted);transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}.table-searchbar-field:focus-within{border-color:var(--accent);box-shadow:var(--ring);background:#fff}.table-searchbar-field input{width:100%;min-width:0;border:0;box-shadow:none;background:transparent;padding:10px 0}.table-searchbar-field input:focus{outline:0;box-shadow:none}.table-searchbar-icon{width:16px;height:16px;flex-shrink:0;border:2px solid currentColor;border-radius:50%;position:relative;opacity:.75}.table-searchbar-icon:after{content:"";position:absolute;width:7px;height:2px;right:-6px;bottom:-3px;border-radius:2px;background:currentColor;transform:rotate(45deg)}.table-searchbar-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}.table-searchbar-count{color:var(--muted);font-size:12px;font-weight:650;white-space:nowrap}.table-search-empty td{text-align:center;padding:20px 16px;background:var(--surface)}@media (max-width: 700px){.table-searchbar{align-items:stretch;flex-direction:column;padding:12px}.table-searchbar-field{max-width:none;min-width:0;width:100%}.table-searchbar-meta{justify-content:space-between;width:100%}}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--primary: #128a45;--primary-dark: #0f7a3c;--primary-darker: #0b5c2d;--primary-rgb: 18, 138, 69;--primary-100: #e2f8ec;--primary-200: #c2f0d3;--accent: #25d366;--purple: #5e3485;--purple-100: #efe7f7;--bg: #eef2f6;--surface: #ffffff;--surface-2: #f7fafc;--border: #e3e9f0;--border-strong: #cfd8e3;--text: #1f2d3a;--muted: #64748b;--muted-soft: #94a3b8;--danger: #c0392b;--danger-bg: #fdecea;--ok: #1e8449;--ok-bg: #e7f6ec;--warn: #b9770e;--warn-bg: #fdf3e2;--radius-sm: 7px;--radius: 10px;--radius-lg: 14px;--shadow-xs: 0 1px 2px rgba(15, 30, 42, .06);--shadow-sm: 0 1px 3px rgba(15, 30, 42, .08), 0 1px 2px rgba(15, 30, 42, .04);--shadow: 0 4px 16px rgba(15, 30, 42, .08);--shadow-lg: 0 18px 48px rgba(15, 30, 42, .22);--ring: 0 0 0 3px rgba(37, 211, 102, .32);--ease: .18s cubic-bezier(.4, 0, .2, 1);--sidebar-w: 224px;--sidebar-collapsed-w: 68px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--primary);text-decoration:none;transition:color var(--ease)}a:hover{color:var(--primary-dark)}button{cursor:pointer;font:inherit}h1,h2,h3{color:var(--text);letter-spacing:-.01em}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}.btn,.btn-secondary,.btn-danger,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:600;line-height:1.1;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;transition:background var(--ease),border-color var(--ease),color var(--ease),box-shadow var(--ease),transform var(--ease);white-space:nowrap}.btn{background:var(--primary);color:#fff;box-shadow:var(--shadow-xs)}.btn:hover{background:var(--primary-dark)}.btn:active{transform:translateY(1px)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-2);border-color:var(--muted-soft)}.btn-secondary:active{transform:translateY(1px)}.btn-danger{background:var(--danger);color:#fff;padding:8px 14px}.btn-danger:hover{background:#a93226}.btn-danger:active{transform:translateY(1px)}.btn-ghost{background:transparent;color:var(--primary)}.btn-ghost:hover{background:var(--primary-100)}.btn-link{background:none;border:0;color:var(--primary);padding:0;font-weight:600;font-size:14px;transition:color var(--ease)}.btn-link:hover{color:var(--primary-dark);text-decoration:underline}.btn:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-sm{padding:6px 11px;font-size:13px}.badge{display:inline-flex;align-items:center;gap:5px;background:var(--primary-100);color:var(--primary-dark);padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.65}.badge-plain:before{display:none}.badge-paid,.badge-active,.badge-success{background:var(--ok-bg);color:var(--ok)}.badge-pending,.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-overdue,.badge-danger{background:var(--danger-bg);color:var(--danger)}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:linear-gradient(185deg,#35194d,#20102f);color:#d7cce6;padding:18px 14px 24px;flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(196,211,223,.35) transparent;transition:width var(--ease),padding var(--ease)}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#c4d3df59;border-radius:999px}.sidebar::-webkit-scrollbar-thumb:hover{background:#c4d3df94}.brand{display:flex;align-items:center;gap:11px;font-weight:700;color:#fff;font-size:16px;padding:6px 8px 16px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:url(/logos/logoicon.png) center / cover no-repeat;box-shadow:0 2px 8px #00000040;font-size:0;color:transparent;text-indent:-9999px;overflow:hidden}.brand-sub{display:block;font-size:11px;font-weight:500;color:#8aa0b0;letter-spacing:.04em}.brand>span:last-child,.nav-label,.nav-group,.sidebar-foot{transition:opacity var(--ease)}.sidebar nav{display:flex;flex-direction:column;gap:1px}.sidebar nav a{display:flex;align-items:center;gap:11px;color:#cdbfe4;padding:10px 12px;border-radius:var(--radius-sm);margin:1px 0;font-size:14px;font-weight:500;transition:background var(--ease),color var(--ease)}.sidebar nav a svg{width:18px;height:18px;flex-shrink:0;opacity:.85}.sidebar nav a:hover{background:#ffffff12;color:#fff}.sidebar nav a.active{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:600;box-shadow:0 2px 10px #25d36666}.sidebar nav a.active svg{opacity:1}.nav-group{text-transform:uppercase;font-size:10.5px;font-weight:700;letter-spacing:.09em;color:#7d93a4;margin:18px 0 6px;padding:0 12px}.nav-group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;font-family:inherit;cursor:pointer;transition:color var(--ease)}.nav-group-toggle:hover{color:#c4d3df}.nav-group-chevron{width:13px;height:13px;flex-shrink:0;transition:transform var(--ease)}.nav-group-chevron.open{transform:rotate(90deg)}.shell.nav-collapsed .nav-group-chevron{display:none}.sidebar-foot{margin-top:auto;padding:14px 8px 0;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:#7d93a4}.sidebar-collapse{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background var(--ease),border-color var(--ease),color var(--ease)}.sidebar-collapse:hover{background:var(--surface-2);border-color:var(--muted-soft);color:var(--primary)}.sidebar-collapse svg{width:18px;height:18px}.shell.nav-collapsed .sidebar{width:var(--sidebar-collapsed-w);padding:18px 9px 22px;overflow-x:hidden}.shell.nav-collapsed .brand{justify-content:center;padding-inline:0}.shell.nav-collapsed .brand>span:last-child,.shell.nav-collapsed .nav-label,.shell.nav-collapsed .nav-group,.shell.nav-collapsed .sidebar-foot{display:none}.shell.nav-collapsed .sidebar nav a{justify-content:center;gap:0;padding:11px}.shell.nav-collapsed .sidebar nav a svg{margin:0}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border-bottom:1px solid var(--border);padding:12px 24px;min-height:60px;position:sticky;top:0;z-index:20}.topbar-title{font-size:15px;font-weight:600;color:var(--text)}.topbar-user{display:flex;align-items:center;gap:12px;font-size:14px}.topbar-user .user-email{color:var(--muted);font-weight:500;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-toggle{display:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:40px;height:40px;align-items:center;justify-content:center;color:var(--text)}.nav-toggle:hover{background:var(--surface-2)}.sidebar-backdrop{display:none}.content{padding:26px;max-width:1320px;width:100%}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{font-size:24px;margin:0;font-weight:700}.page-head .subtitle{color:var(--muted);font-size:14px;margin:4px 0 0}.toolbar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.card>h3:first-child,.card-title{margin-top:0}.card h3{font-size:16px;margin:0 0 14px;font-weight:650}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:16px;transition:box-shadow var(--ease),transform var(--ease),border-color var(--ease);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--accent),var(--primary))}.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--border-strong)}.stat-icon{width:46px;height:46px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;background:var(--primary-100);color:var(--primary)}.stat-icon svg{width:23px;height:23px}.stat-body{min-width:0}.stat-value{font-size:26px;font-weight:750;color:var(--text);line-height:1.1;letter-spacing:-.02em}.stat-label{color:var(--muted);font-size:13px;font-weight:500;margin-top:2px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 16px;font-size:14px}th{background:var(--surface-2);color:var(--muted);font-weight:650;font-size:12px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border)}td{border-bottom:1px solid var(--border);color:var(--text)}tbody tr{transition:background var(--ease)}tbody tr:nth-child(2n){background:#f7fafc8c}tbody tr:hover{background:var(--primary-100)}tr:last-child td{border-bottom:0}td .btn-link+.btn-danger,td .btn-link+.btn-link{margin-left:8px}input,select,textarea{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;background:var(--surface);color:var(--text);transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}input::placeholder,textarea::placeholder{color:var(--muted-soft)}input:hover,select:hover,textarea:hover{border-color:var(--muted-soft)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed}textarea{resize:vertical;min-height:96px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:34px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 18px;max-width:760px}.form-grid.cols-1{grid-template-columns:1fr}.form-grid.cols-3{grid-template-columns:repeat(3,1fr)}.form-field{display:flex;flex-direction:column;gap:6px;min-width:0}.form-field label{font-size:13px;font-weight:600;color:var(--text)}.form-field .hint{font-size:12px;color:var(--muted)}.form-field.checkbox{flex-direction:row;align-items:center;gap:9px}.form-field.checkbox input{width:auto}.form-field.checkbox label{font-weight:500;color:var(--text)}.check-row{display:flex;flex-wrap:wrap;gap:22px;margin:4px 0 6px}.check-row label{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500}.check-row input{width:auto}.form-actions{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--border)}.card .form-actions{border-top:1px solid var(--border)}.field-error{color:var(--danger);font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px}.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:var(--danger)}.form-field.has-error input:focus,.form-field.has-error select:focus{box-shadow:0 0 0 3px #c0392b2e}.form-section{margin-bottom:18px}.form-section>.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.form-section .section-head h3{margin:0}.form-section .section-desc{color:var(--muted);font-size:13px;margin:2px 0 14px}.repeat-row{display:flex;gap:14px;align-items:flex-end;padding:14px;margin-bottom:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.repeat-row .form-grid{flex:1}.empty-note{color:var(--muted);font-size:14px;padding:14px;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);text-align:center}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 24px;color:var(--muted);text-align:center}.empty-state svg{width:40px;height:40px;opacity:.4}td.muted,.muted{color:var(--muted)}td.muted{text-align:center;padding:28px 16px}.center{text-align:center}.alert{padding:11px 14px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:12px}.alert-error{background:var(--danger-bg);color:var(--danger)}.alert-info{background:var(--primary-100);color:var(--primary-dark)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-wrap .auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:30px;width:100%;max-width:372px;box-shadow:var(--shadow)}@media (max-width: 400px){.auth-wrap .auth-card{padding:24px 20px}}.auth-wrap .auth-card h1{margin:0 0 4px;font-size:23px}.auth-wrap .auth-card p.sub{color:var(--muted);margin:0 0 20px;font-size:14px}.auth-wrap .auth-card .form-field{margin-bottom:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#0a19268c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;animation:modal-fade .14s ease-out}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:430px;box-shadow:var(--shadow-lg);padding:24px 24px 20px;animation:modal-pop .16s cubic-bezier(.34,1.4,.64,1)}.modal-head{display:flex;align-items:center;gap:13px}.modal-title{margin:0;font-size:17px;font-weight:650}.modal-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:18px;background:var(--primary-100);color:var(--muted)}.modal-icon-error,.modal-icon-danger{background:var(--danger-bg);color:var(--danger)}.modal-icon-success{background:var(--ok-bg);color:var(--ok)}.modal-icon-info,.modal-icon-confirm{background:var(--primary-100);color:var(--primary)}.modal-message{margin:15px 2px 0;color:var(--text);font-size:14.5px;line-height:1.55;white-space:pre-line}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:none}}.session-warn{max-width:400px;text-align:center;padding-top:28px}.session-warn .sw-title{margin:18px 0 0}.session-warn .sw-message{margin-top:9px;color:var(--muted);font-size:14px}.session-warn .sw-actions{justify-content:center;margin-top:22px}.session-warn .sw-actions .btn,.session-warn .sw-actions .btn-secondary{min-width:130px;justify-content:center}.sw-clock{position:relative;width:104px;height:104px;margin:0 auto}.sw-clock svg{width:100%;height:100%;display:block}.sw-ring-track{fill:none;stroke:var(--warn-bg);stroke-width:7}.sw-ring-fill{fill:none;stroke:var(--warn);stroke-width:7;stroke-linecap:round;transition:stroke-dasharray 1s linear,stroke .3s ease}.sw-time{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:25px;font-weight:700;letter-spacing:.5px;font-variant-numeric:tabular-nums;color:var(--warn);transition:color .3s ease}.sw-clock.is-urgent .sw-ring-track{stroke:var(--danger-bg)}.sw-clock.is-urgent .sw-ring-fill{stroke:var(--danger)}.sw-clock.is-urgent .sw-time{color:var(--danger)}.sw-clock.is-urgent{animation:sw-pulse 1s ease-in-out infinite}@keyframes sw-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}@media (prefers-reduced-motion: reduce){.sw-clock.is-urgent{animation:none}.sw-ring-fill{transition:none}}.pay-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px;animation:modal-fade .15s ease-out}.pay-modal{background:var(--surface);border-radius:16px;width:100%;max-width:560px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px #0f172a4d;animation:modal-pop .18s cubic-bezier(.34,1.4,.64,1)}.pay-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.pay-head-title{font-weight:700;font-size:16px;color:var(--text)}.pay-head-right{display:inline-flex;align-items:center;gap:10px}.pay-secure{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--primary);white-space:nowrap}.pay-secure svg{width:13px;height:13px}.pay-x{border:0;background:none;color:var(--muted);cursor:pointer;padding:5px;border-radius:8px;display:grid;place-items:center;line-height:0}.pay-x:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.pay-x:disabled{opacity:.5;cursor:not-allowed}.pay-x svg{width:17px;height:17px}.pay-body{padding:18px 20px;overflow-y:auto}.pay-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;margin-bottom:16px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}.pay-summary-desc{font-size:13px;color:var(--muted);line-height:1.4}.pay-summary-test{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--warn);background:var(--warn-bg);padding:2px 7px;border-radius:999px;margin-top:5px}.pay-amount{font-size:26px;font-weight:800;color:var(--primary);letter-spacing:-.5px;white-space:nowrap}.pay-wallets{display:flex;gap:10px;margin-bottom:14px}.pay-wallet{flex:1;height:46px;border-radius:10px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600;font-size:14.5px;cursor:pointer;background:var(--surface);color:var(--text);transition:background var(--ease),border-color var(--ease),transform .06s ease}.pay-wallet:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.pay-wallet:active:not(:disabled){transform:translateY(1px)}.pay-wallet:disabled{opacity:.5;cursor:not-allowed}.pay-wallet.apple{background:#000;border-color:#000;color:#fff}.pay-wallet.apple:hover:not(:disabled){background:#1c1c1e;border-color:#1c1c1e}.pay-wallet svg{height:18px;width:auto;display:block}.pay-or{display:flex;align-items:center;gap:12px;margin:2px 0 14px;color:var(--muted-soft);font-size:12px}.pay-or:before,.pay-or:after{content:"";flex:1;height:1px;background:var(--border)}.pay-section{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:20px 0 11px}.pay-label{display:block;font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:5px}.pay-req{color:var(--danger)}.pay-row{display:flex;gap:10px;margin-top:12px}.pay-col{flex:1;min-width:0}.pay-err{color:var(--danger);font-size:11.5px;margin:4px 0 0}.pay-field-gap{margin-top:12px}.pay-card-wrap{position:relative}.pay-brand{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:700;color:var(--text);background:var(--surface-2);border:1px solid var(--border);padding:2px 8px;border-radius:6px}.pay-amount-input{display:flex;align-items:center;gap:8px}.pay-amount-sym{font-size:20px;font-weight:800;color:var(--primary)}.pay-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:var(--muted-soft);text-align:center;margin:14px 0 0;line-height:1.4}.pay-note svg{width:12px;height:12px;flex-shrink:0}.pay-error{color:var(--danger);font-size:13px;margin:12px 0 0}.pay-foot{padding:12px 20px;border-top:1px solid var(--border);background:var(--surface-2);display:flex;justify-content:flex-end;flex-shrink:0}.form-control.is-error{border-color:var(--danger)}.form-control.is-error:focus{box-shadow:0 0 0 3px #c0392b2e}.hero{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;padding:64px 24px;text-align:center}.hero h1{font-size:36px;margin:0 0 10px}.hero p{font-size:18px;opacity:.9}.public-nav{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.public-brand{font-weight:700;color:var(--primary);font-size:17px}.public-links{display:flex;align-items:center;gap:18px}.public-links a{color:var(--text);font-size:14px}.public-links a.active{color:var(--primary);font-weight:600}.public-links a.btn{color:#fff}.public-footer{background:var(--primary-darker);color:#aebfcb;text-align:center;padding:26px 24px;margin-top:40px}.section{max-width:1000px;margin:0 auto;padding:40px 24px}@media (max-width: 900px){.content{padding:18px}.form-grid,.form-grid.cols-3{grid-template-columns:1fr}.nav-toggle{display:inline-flex}.sidebar-collapse{display:none}.sidebar{position:fixed;top:0;left:0;z-index:60;height:100vh;transform:translate(-100%);transition:transform var(--ease);box-shadow:var(--shadow-lg)}.shell.nav-open .sidebar{transform:translate(0)}.shell.nav-open .sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a192680}.page-head h1{font-size:21px}.topbar-user .user-email{max-width:130px}.repeat-row{flex-direction:column;align-items:stretch}}.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:22px}.tab{background:none;border:0;padding:10px 16px;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:7px;transition:color var(--ease),border-color var(--ease)}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab .tab-count{background:var(--primary-100);color:var(--primary);font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px}.badge-info,.badge-new{background:var(--primary-100);color:var(--primary)}.email-split{display:grid;grid-template-columns:340px 1fr;gap:18px;align-items:start}.list-card{padding:0;overflow:hidden}.list-row{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--border);padding:13px 16px;transition:background var(--ease)}.list-row:last-child{border-bottom:0}.list-row:hover{background:var(--surface-2)}.list-row.active{background:var(--primary-100)}.list-row .lr-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.list-row .lr-name{font-weight:600;font-size:14px}.list-row .lr-sub{color:var(--muted);font-size:12.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipient-box{max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px}.recipient-box .form-field.checkbox{padding:5px 8px;margin:0;border-radius:6px}.recipient-box .form-field.checkbox:hover{background:var(--surface-2)}.radio-row{display:flex;gap:8px;flex-wrap:wrap}.radio-chip{display:inline-flex;align-items:center;gap:7px;cursor:pointer;border:1px solid var(--border-strong);border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:600;color:var(--muted);transition:all var(--ease)}.radio-chip:hover{border-color:var(--accent);color:var(--text)}.radio-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.radio-chip input{display:none}@media (max-width: 880px){.email-split{grid-template-columns:1fr}}.segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px;gap:2px;flex-wrap:wrap}.segmented button{border:0;background:none;padding:6px 13px;border-radius:999px;font-size:13px;font-weight:600;color:var(--muted);display:inline-flex;align-items:center;gap:6px;transition:all var(--ease)}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-xs)}.segmented .seg-count{font-size:11px;font-weight:700;min-width:18px;padding:0 5px;border-radius:999px;background:var(--border);color:var(--muted)}.segmented button.active .seg-count{background:var(--primary-100);color:var(--primary)}.search{position:relative;display:inline-flex;align-items:center;width:100%}.search>svg{position:absolute;left:11px;color:var(--muted-soft);pointer-events:none}.search input{padding-left:35px}.search .search-clear{position:absolute;right:8px;background:none;border:0;color:var(--muted);display:grid;place-items:center;width:22px;height:22px;border-radius:50%}.search .search-clear:hover{background:var(--surface-2);color:var(--text)}.ms{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.ms-chips{display:flex;flex-wrap:wrap;gap:6px;padding:9px 10px;border-bottom:1px solid var(--border);background:var(--surface-2)}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--primary);color:#fff;border-radius:999px;padding:4px 5px 4px 11px;font-size:12.5px;font-weight:600;max-width:220px}.chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip button{background:#fff3;border:0;color:#fff;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;flex-shrink:0}.chip button:hover{background:#ffffff59}.ms-search{display:flex;align-items:center;gap:8px;padding:4px 12px;border-bottom:1px solid var(--border)}.ms-search svg{color:var(--muted-soft);flex-shrink:0}.ms-search input{border:0;padding:9px 0}.ms-search input:focus{outline:none;box-shadow:none}.ms-list{max-height:290px;overflow-y:auto}.ms-opt{display:flex;align-items:center;gap:11px;padding:9px 13px;cursor:pointer;font-size:14px;border-top:1px solid var(--border);transition:background var(--ease)}.ms-list .ms-opt:first-child{border-top:0}.ms-opt:hover{background:var(--surface-2)}.ms-opt.checked{background:var(--primary-100)}.ms-opt input{width:auto;margin:0}.ms-opt .ms-avatar{width:28px;height:28px;font-size:12px}.ms-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-2);border-top:1px solid var(--border);font-size:13px}.ms-bar .muted{font-weight:600}.ms-more{padding:10px 13px;font-size:12.5px;color:var(--muted);text-align:center;border-top:1px solid var(--border);background:var(--surface-2)}.avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-weight:700;font-size:14px;background:var(--primary-100);color:var(--primary)}.ms-avatar{border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--primary-100);color:var(--primary);flex-shrink:0}.msg-row{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--border);padding:13px 15px;transition:background var(--ease)}.msg-row:last-child{border-bottom:0}.msg-row:hover{background:var(--surface-2)}.msg-row.active{background:var(--primary-100)}.msg-row.unread .mr-name{font-weight:700}.mr-body{min-width:0;flex:1}.mr-top{display:flex;align-items:center;gap:8px}.mr-name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mr-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.mr-time{margin-left:auto;font-size:11.5px;color:var(--muted-soft);white-space:nowrap;flex-shrink:0}.mr-preview{color:var(--muted);font-size:12.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.inbox-toolbar .search{flex:1;min-width:200px}.detail-head{display:flex;gap:13px;align-items:center;margin-bottom:4px}.detail-head .avatar{width:44px;height:44px;font-size:17px}.notif-wrap{position:relative}.notif-bell{position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:transparent;border:0;color:var(--muted);cursor:pointer;transition:background var(--ease),color var(--ease)}.notif-bell:hover{background:var(--bg);color:var(--text)}.notif-dot{position:absolute;top:1px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center}.notif-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:340px;max-width:86vw;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--border);font-size:13.5px;font-weight:650}.notif-mark-all{background:none;border:0;color:var(--primary);font-size:12.5px;font-weight:600;cursor:pointer;padding:0}.notif-mark-all:hover{text-decoration:underline}.notif-empty{padding:22px 14px;margin:0;color:var(--muted);font-size:13.5px;text-align:center}.notif-list{list-style:none;margin:0;padding:0}.notif-item{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--ease)}.notif-item:last-child{border-bottom:0}.notif-item:hover{background:var(--bg)}.notif-item.unread{background:var(--primary-100)}.notif-item.unread:hover{background:#e4efd2}.notif-item.unread .notif-title:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px;vertical-align:1px}.notif-title{font-size:13.5px;font-weight:650}.notif-msg{font-size:12.8px;color:var(--muted);line-height:1.45}.notif-time{font-size:11.5px;color:var(--muted-soft);margin-top:2px}.notif-foot{padding:9px 14px;border-top:1px solid var(--border);text-align:center;position:sticky;bottom:0;background:var(--surface)}.notif-see-all{color:var(--primary);font-size:12.8px;font-weight:600;text-decoration:none}.notif-see-all:hover{text-decoration:underline}.notif-loadmore{display:flex;justify-content:center;padding:14px 0 4px}.cal{display:flex;flex-direction:column;gap:12px}.cal-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cal-head .cal-label{font-size:15px;font-weight:650;min-width:170px}.cal-nav{display:flex;gap:4px}.cal-nav button,.cal-view button{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:5px 10px;font-size:13px;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;transition:background var(--ease)}.cal-nav button:hover,.cal-view button:hover{background:var(--bg)}.cal-view{margin-left:auto;display:flex;gap:4px}.cal-view button.active{background:var(--primary);border-color:var(--primary);color:#fff}.cal-scroll{overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius)}.cal-grid-week{display:grid;grid-template-columns:52px repeat(var(--cal-days, 7),minmax(110px,1fr));min-width:100%}.cal-grid-week .cal-corner,.cal-grid-week .cal-day-head{background:var(--bg);border-bottom:1px solid var(--border);padding:8px 6px;font-size:12.5px;font-weight:650;text-align:center}.cal-day-head.today{color:var(--primary)}.cal-gutter{position:relative;background:var(--bg);border-right:1px solid var(--border)}.cal-gutter span{position:absolute;right:6px;transform:translateY(-50%);font-size:10.5px;color:var(--muted-soft)}.cal-col{position:relative;border-right:1px solid var(--border);background:var(--surface)}.cal-col:last-child{border-right:0}.cal-hour-line{position:absolute;left:0;right:0;border-top:1px solid var(--border)}.cal-event{position:absolute;left:3px;right:3px;z-index:2;background:var(--primary-100);border-left:3px solid var(--accent);border-radius:5px;padding:3px 6px;overflow:hidden;font-size:11.8px;line-height:1.35;cursor:default}.cal-event b{display:block;font-size:11.8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-event.completed{background:var(--ok-bg);border-left-color:var(--ok)}.cal-event.cancelled{background:#f1f3f6;border-left-color:var(--muted-soft);color:var(--muted);text-decoration:line-through}.cal-event.no_show{background:var(--danger-bg);border-left-color:var(--danger)}.cal-event.appointment{background:#f0ebff;border-left-color:#7c3aed;color:#4c1d95}.cal-event.appt-pending{background:#fffbeb;border-left-color:#d97706;color:#92400e}.cal-chip.appointment{background:#7c3aed}.cal-chip.appt-pending{background:#d97706}.cal-grid-month{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.cal-grid-month .cal-day-head{background:var(--bg);border-bottom:1px solid var(--border);padding:8px 6px;font-size:12.5px;font-weight:650;text-align:center}.cal-day{min-height:92px;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:5px 6px;font-size:12px}.cal-day:nth-child(7n){border-right:0}.cal-day.dim{background:var(--bg);color:var(--muted-soft)}.cal-day .cal-date{font-size:11.5px;font-weight:650;color:var(--muted);display:inline-block;margin-bottom:3px}.cal-day.today .cal-date{background:var(--primary);color:#fff;border-radius:50%;width:20px;height:20px;line-height:20px;text-align:center}.cal-chip{display:block;background:var(--primary-100);border-left:3px solid var(--accent);border-radius:4px;padding:1px 5px;margin-bottom:3px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip.completed{background:var(--ok-bg);border-left-color:var(--ok)}.cal-chip.cancelled{background:#f1f3f6;border-left-color:var(--muted-soft);color:var(--muted);text-decoration:line-through}.cal-chip.no_show{background:var(--danger-bg);border-left-color:var(--danger)}.cal-more{font-size:11px;color:var(--primary);font-weight:600}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:8px 0 2px}.slot-chip{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--ease),color var(--ease),border-color var(--ease)}.slot-chip:hover{border-color:var(--primary);color:var(--primary)}.slot-chip.selected{background:var(--primary);border-color:var(--primary);color:#fff}.policy-note{background:var(--primary-100);color:var(--primary);border-radius:8px;padding:10px 14px;font-size:13px;margin:0}.busy-strip{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}.busy-chip{display:inline-flex;align-items:center;gap:5px;background:var(--warn-bg);color:var(--warn);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.emr-form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}@media (max-width: 720px){.emr-form-grid>.form-field{grid-column:span 12!important}}.emr-signature{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.emr-signature-pad{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;touch-action:none;width:100%;max-width:400px;cursor:crosshair}.emr-field-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:12px;margin-bottom:10px}.emr-field-card.dragging{opacity:.6;border-style:dashed}.drag-handle{color:var(--muted);-webkit-user-select:none;user-select:none}.emr-field-head{display:flex;gap:10px;align-items:center}.emr-field-meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:8px;font-size:13.5px;color:var(--muted)}.emr-field-meta label{display:inline-flex;align-items:center;gap:6px}.emr-field-meta input[type=number]{width:58px}.emr-options{margin-top:8px;padding-left:10px;border-left:2px solid var(--border)}.emr-option-row{display:flex;gap:8px;margin-bottom:6px}.emr-preview-panel{margin-top:20px}.emr-preview-bar{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.emr-preview-label{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--primary-dark);background:var(--primary-100);padding:4px 10px;border-radius:999px}.emr-preview-label:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}.emr-preview-frame{background:radial-gradient(circle at 1px 1px,var(--border) 1px,transparent 0) 0 0 / 22px 22px,var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 22px}.emr-preview-form{max-width:720px;margin:0 auto;padding:28px 30px;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.emr-preview-title{margin:0 0 4px;font-size:22px}.emr-preview-desc{margin:0 0 4px;font-size:14px}.emr-preview-form .emr-form-grid{margin-top:16px}@media (max-width: 720px){.emr-preview-frame{padding:14px 10px}.emr-preview-form{padding:20px 16px}}.emr-preview-modal{max-width:820px;padding:18px 18px 14px;display:flex;flex-direction:column;max-height:84vh}.emr-preview-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--border)}.emr-preview-modal-body{overflow-y:auto;margin:14px -4px;padding:0 4px}.emr-preview-modal .modal-actions{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.emr-fill{min-height:100vh;background:var(--bg);padding:40px 16px}.emr-fill-card{max-width:760px;margin:0 auto}.emr-record-answers{display:flex;flex-direction:column;gap:12px}.emr-answer{padding-bottom:12px;border-bottom:1px solid var(--border)}.emr-record-answers .emr-answer:last-child{padding-bottom:0;border-bottom:0}.emr-answer-label{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.emr-answer-value{font-size:14.5px;color:var(--text)}h1,h2,h3,.stat-value{letter-spacing:0}.page-head-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.page-kicker{display:inline-flex;margin-bottom:5px;color:var(--primary);font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.page-title-with-icon{display:flex;align-items:center;gap:14px;min-width:0}.page-title-icon{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;color:var(--primary);background:var(--primary-100);border:1px solid var(--primary-200);border-radius:var(--radius-sm)}.page-title-icon svg{width:22px;height:22px}.page-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stat-card{min-height:116px;align-items:flex-start}.stat-helper{color:var(--muted-soft);font-size:12px;margin-top:5px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:18px;align-items:start}.dashboard-panel{padding:0;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border)}.panel-head h3{margin:0;font-size:16px;font-weight:700}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:13px}.quick-actions-panel{min-width:0}.quick-action-list{display:grid;gap:1px;background:var(--border)}.quick-action{display:flex;align-items:center;gap:12px;padding:15px 18px;background:var(--surface);color:var(--text);transition:background var(--ease),color var(--ease)}.quick-action:hover{background:var(--surface-2);color:var(--text)}.quick-action-icon{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--primary);background:var(--primary-100)}.quick-action-icon svg{width:20px;height:20px}.quick-action strong{display:block;font-size:14px}.quick-action small{display:block;margin-top:2px;color:var(--muted);font-size:12px;line-height:1.4}.vehicle-alert-panel{margin-bottom:18px}.vehicle-alert-list{display:grid;gap:1px;background:var(--border)}.vehicle-alert-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;background:var(--surface)}.vehicle-alert-main{min-width:0}.vehicle-alert-main strong{display:block;font-size:14px;color:var(--text)}.vehicle-alert-main small{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}.vehicle-alert-item .badge{flex-shrink:0}.chat-shell{display:grid;grid-template-columns:290px minmax(0,1fr);gap:0;height:calc(100vh - 170px);min-height:560px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.chat-sidebar{border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface)}.chat-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-weight:700;font-size:14px;color:var(--text);flex-shrink:0}.chat-conv-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.chat-conv-item{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background var(--ease)}.chat-conv-item:hover{background:var(--surface-2)}.chat-conv-item.active{background:var(--primary-100);border-left:3px solid var(--primary)}.chat-conv-item.unread .chat-conv-name{font-weight:750}.chat-conv-meta{flex:1;min-width:0}.chat-conv-row{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.chat-conv-name{font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-conv-time{font-size:11px;color:var(--muted-soft);flex-shrink:0}.chat-conv-preview{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;margin-top:2px}.chat-unread-badge{background:var(--primary);color:#fff;border-radius:10px;font-size:10px;font-weight:700;padding:1px 6px;flex-shrink:0}.chat-panel{display:flex;flex-direction:column;background:var(--surface)}.chat-panel-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.chat-panel-name{font-size:15px;font-weight:700;color:var(--text)}.chat-panel-role{font-size:12px;color:var(--muted);margin-top:1px}.chat-messages{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}.chat-loading{text-align:center;color:var(--muted);font-size:13px;padding:24px}.chat-message{display:flex;align-items:flex-end;gap:8px}.chat-message.mine{flex-direction:row-reverse}.chat-message.mine .chat-bubble{background:var(--primary);color:#fff;border-color:var(--primary-dark)}.chat-message.mine .chat-bubble p{color:#fff}.chat-message.mine .chat-bubble-time{text-align:right}.chat-bubble{padding:9px 13px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-xs)}.chat-bubble p{margin:0;font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)}.chat-bubble-time{font-size:10.5px;color:var(--muted-soft);margin-top:2px;padding:0 2px}.chat-sender-label{font-size:11.5px;font-weight:650;color:var(--muted);margin-bottom:2px;display:flex;align-items:center;gap:5px}.chat-role-chip{font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:6px;color:#fff;letter-spacing:.02em;text-transform:uppercase}.chat-compose{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.chat-input{flex:1;border:1px solid var(--border);border-radius:22px;padding:9px 16px;font-size:14px;outline:none;background:var(--surface-2);transition:border-color var(--ease),box-shadow var(--ease)}.chat-input:focus{border-color:var(--accent);box-shadow:var(--ring);background:var(--surface)}.chat-send-btn{width:38px;height:38px;border-radius:50%!important;padding:0!important;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-attach-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;transition:background var(--ease)}.chat-attach-btn:hover{background:var(--surface-3, #f1f5f9)}.chat-attachment-preview{display:flex;align-items:center;gap:10px;padding:8px 16px;border-top:1px solid var(--border);background:#eff6ff;flex-shrink:0;font-size:13}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;flex:1;padding:32px;text-align:center;color:var(--muted)}.chat-empty h3{margin:0;color:var(--text);font-size:17px}.chat-empty p{margin:0;font-size:13.5px;max-width:300px}.chat-recipient-list{max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.chat-recipient-row{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;transition:background var(--ease);border-bottom:1px solid var(--border)}.chat-recipient-row:last-child{border-bottom:0}.chat-recipient-row:hover{background:var(--surface-2)}.chat-recipient-row.selected{background:var(--primary-100)}.chat-selected-chip{display:inline-flex;align-items:center;gap:5px;background:var(--primary-100);color:var(--primary);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}.chat-selected-chip button{background:none;border:none;cursor:pointer;padding:0;color:inherit;font-size:13px;line-height:1}@media (max-width: 820px){.chat-shell{grid-template-columns:1fr;height:auto;min-height:0}.chat-sidebar{border-right:0;border-bottom:1px solid var(--border);max-height:260px}.chat-messages{min-height:300px;max-height:400px}}.crud-card{padding:0;overflow:hidden}.crud-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,var(--surface-2))}.crud-toolbar-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-field{flex:1;min-width:240px;max-width:430px;display:flex;align-items:center;gap:9px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:0 12px;color:var(--muted);transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}.search-field:focus-within{border-color:var(--accent);box-shadow:var(--ring);background:#fff}.search-field svg{width:18px;height:18px;flex-shrink:0}.search-field input{border:0;box-shadow:none;background:transparent;padding:10px 0;min-width:0}.search-field input:focus{box-shadow:none}.table-wrap-flush{border:0;border-radius:0;box-shadow:none;overflow-x:auto}.data-table th{white-space:nowrap}.data-table td{vertical-align:middle}.report-template-output{overflow-x:auto}.report-template-output table{min-width:100%}.crud-table td{max-width:320px;overflow-wrap:break-word}.actions-col{text-align:right;width:1%}.row-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;white-space:nowrap}.pagination-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--border);background:var(--surface-2)}.pagination-actions{display:flex;align-items:center;gap:8px}.page-count{color:var(--text);font-size:13px;font-weight:650}.record-form-card{max-width:980px;padding:0;overflow:hidden}.form-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,var(--surface-2))}.form-card-head h3{margin:0;font-size:16px;font-weight:700}.form-card-head p{margin:3px 0 0;color:var(--muted);font-size:13px}.record-form-grid{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));padding:20px}.record-form-actions{margin:0;padding:16px 20px;background:var(--surface-2)}.required-dot{color:var(--danger)}.toggle-field{min-height:58px;flex-direction:row;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.toggle-field span{display:flex;flex-direction:column;gap:2px;min-width:0}.toggle-field strong{font-size:13px;font-weight:650}.toggle-field em{color:var(--muted);font-size:11px;font-style:normal;font-weight:500}.toggle-field input{width:18px;height:18px;flex-shrink:0}.choice-list{display:flex;flex-wrap:wrap;gap:8px}.choice-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:13px;font-weight:600}.choice-pill input{width:auto}.form-field.has-error textarea:focus{box-shadow:0 0 0 3px #c0392b2e}@media (max-width: 980px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width: 700px){.page-head-panel,.panel-head,.crud-toolbar,.form-card-head,.record-form-grid,.record-form-actions,.pagination-bar{padding-left:14px;padding-right:14px}.page-title-with-icon{align-items:flex-start}.page-title-icon{width:38px;height:38px}.crud-toolbar{align-items:stretch;flex-direction:column}.search-field{max-width:none;min-width:0}.record-form-grid{grid-template-columns:1fr}.row-actions{flex-direction:column;align-items:flex-end}.pagination-actions{width:100%;justify-content:space-between}}.row-actions{display:table-cell;text-align:right;white-space:nowrap}.row-actions>*+*{margin-left:8px}@media (max-width: 700px){.row-actions{display:table-cell;text-align:right}}.student-form-stack{max-width:1080px;display:grid;gap:16px}.student-section{margin-bottom:0}.student-section .section-head{margin-bottom:14px}.student-section .section-desc{margin:2px 0 0}.student-submit-bar{margin:0;justify-content:flex-end}@media (max-width: 700px){.student-submit-bar{position:static;justify-content:stretch}.student-submit-bar .btn,.student-submit-bar .btn-secondary{width:100%}}.table-wrap{overflow-x:auto;border-color:var(--border-strong);background:var(--surface)}.table-wrap::-webkit-scrollbar{height:8px}.table-wrap::-webkit-scrollbar-track{background:var(--surface-2)}.table-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--surface-2)}.table-wrap table{min-width:680px;border-collapse:separate;border-spacing:0}th,td{padding:13px 16px;line-height:1.45}th{background:#f3f7fb;color:#475569;border-bottom-color:var(--border-strong)}td{background:inherit;color:#263747}tbody tr:nth-child(2n){background:#fbfdff}tbody tr:nth-child(odd){background:var(--surface)}tbody tr:hover{background:#edf6fd}tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.table-wrap td:first-child,.table-wrap th:first-child{padding-left:18px}.table-wrap td:last-child,.table-wrap th:last-child{padding-right:18px}td strong{font-weight:700;color:var(--text)}.actions-col,th.actions-col{text-align:right}.row-actions .btn-secondary,.row-actions .btn-danger{min-width:64px}input,select,textarea{min-height:42px;border-color:#cbd5e1;box-shadow:inset 0 1px #0f1e2a05}textarea{line-height:1.55}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;padding:0;accent-color:var(--primary);box-shadow:none}.form-grid{gap:18px 20px;align-items:start}.form-field{gap:7px}.form-field label{display:flex;align-items:center;gap:4px;min-height:18px;color:#334155}.form-field:focus-within label{color:var(--primary-dark)}.card.form-section{padding:0;overflow:hidden;border-color:var(--border-strong)}.card.form-section>.section-head{margin:0 0 18px;padding:16px 18px;background:linear-gradient(180deg,#fff,var(--surface-2));border-bottom:1px solid var(--border)}.card.form-section>.form-grid,.card.form-section>.empty-note,.card.form-section>.repeat-row,.card.form-section>.form-actions{margin-left:18px;margin-right:18px}.card.form-section>.form-grid{margin-bottom:18px}.card.form-section>.form-actions{margin-top:0;margin-bottom:18px;padding:16px 0 0}.form-section .section-head h3{font-size:15px;font-weight:750}.form-section .section-desc{max-width:680px;line-height:1.45}.repeat-row{background:#fbfdff;border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.empty-note{background:#fbfdff;border-style:dashed}.form-actions{justify-content:flex-end}@media (max-width: 900px){.table-wrap table{min-width:760px}th,td{padding:12px 14px}}@media (max-width: 700px){.card.form-section>.section-head,.card.form-section>.form-grid,.card.form-section>.empty-note,.card.form-section>.repeat-row,.card.form-section>.form-actions{margin-left:14px;margin-right:14px}.card.form-section>.section-head{margin-left:0;margin-right:0;padding-left:14px;padding-right:14px}.form-actions{justify-content:stretch}.form-actions .btn,.form-actions .btn-secondary,.form-actions .btn-danger{flex:1 1 150px}}.card.form-section>.form-field,.card.form-section>.check-row,.card.form-section>.subtitle,.card.form-section>.policy-note{margin-left:18px;margin-right:18px}.card.form-section>.form-field,.card.form-section>.check-row,.card.form-section>.policy-note{margin-bottom:16px}.card.form-section>.section-head+.subtitle{margin-top:-6px}.card.form-section>.section-head:not(:first-child){border-top:1px solid var(--border)}@media (max-width: 700px){.card.form-section>.form-field,.card.form-section>.check-row,.card.form-section>.subtitle,.card.form-section>.policy-note{margin-left:14px;margin-right:14px}}.record-form-card,.student-form-stack,.card.form-section{max-width:920px}.record-form-grid,.student-section .form-grid,.card.form-section>.form-grid{max-width:800px;grid-template-columns:repeat(2,minmax(240px,360px));justify-content:start}.form-grid.cols-1,.card.form-section>.form-grid.cols-1{max-width:560px;grid-template-columns:minmax(240px,520px)}.form-grid.cols-3,.card.form-section>.form-grid.cols-3{max-width:1040px;grid-template-columns:repeat(3,minmax(200px,1fr))}.record-form-grid .form-field,.student-section .form-field,.card.form-section .form-field{max-width:360px}.record-form-grid .form-field:has(textarea),.record-form-grid .form-field:has(.choice-list),.student-section .form-field:has(textarea),.card.form-section .form-field:has(textarea),.card.form-section>.form-field{max-width:760px}.record-form-grid .form-field:has(textarea),.record-form-grid .form-field:has(.choice-list),.student-section .form-field:has(textarea),.card.form-section .form-field:has(textarea){grid-column:1 / -1}.card.form-section>.form-field input,.card.form-section>.form-field select,.card.form-section>.form-field textarea{max-width:760px}.toggle-field,.choice-list{max-width:760px}.form-field input,.form-field select,.form-field textarea{border-radius:8px}.form-field textarea{min-height:118px}.form-field label{font-size:12px;font-weight:750;letter-spacing:.01em}.record-form-actions,.student-submit-bar,.card.form-section>.form-actions{max-width:920px}@media (max-width: 760px){.record-form-grid,.student-section .form-grid,.card.form-section>.form-grid,.form-grid.cols-3,.card.form-section>.form-grid.cols-3{max-width:none;grid-template-columns:1fr}.record-form-grid .form-field,.student-section .form-field,.card.form-section .form-field,.card.form-section>.form-field{max-width:none}}.tab-bar{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:22px}.tab-bar.connected{margin-bottom:0}.tab-btn{background:none;border:0;padding:10px 16px;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:7px;transition:color var(--ease),border-color var(--ease);cursor:pointer;white-space:nowrap}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.card-tab-attach{border-top-left-radius:0;border-top-right-radius:0;border-top-color:transparent}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}@media (max-width: 760px){.grid-2{grid-template-columns:1fr}}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}@media (max-width: 1024px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.grid-3{grid-template-columns:1fr}}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}@media (max-width: 560px){.filter-grid{grid-template-columns:1fr}}.compose-split{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:18px;align-items:start}@media (max-width: 900px){.compose-split{grid-template-columns:1fr}}.availability-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}@media (max-width: 760px){.availability-week{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}}@media (max-width: 760px){.lesson-row-summary{display:flex!important;flex-wrap:wrap;gap:6px 12px!important}.lesson-row-summary>span:nth-child(4){flex:1 1 100%}.lesson-row-summary>span:last-child{margin-left:auto}}.detail-grid{display:grid;grid-template-columns:auto 1fr;column-gap:20px;row-gap:10px;margin:0}.detail-grid dt{font-size:11.5px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;padding-top:1px}.detail-grid dd{margin:0;font-size:14px;color:var(--text);word-break:break-word}.detail-block{padding-top:0}.detail-block+.detail-block{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:600;line-height:1.1;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;transition:background var(--ease),box-shadow var(--ease),transform var(--ease);white-space:nowrap;background:var(--primary);color:#fff;box-shadow:var(--shadow-xs)}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary.btn-sm{padding:6px 11px;font-size:13px}.form-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.form-control{font:inherit;font-size:14px;padding:10px 12px;min-height:42px;border:1px solid #cbd5e1;border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color var(--ease),box-shadow var(--ease);box-shadow:inset 0 1px #0f1e2a05}.form-control:hover{border-color:var(--muted-soft)}.form-control:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}select.form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:34px}textarea.form-control{resize:vertical;min-height:96px;line-height:1.55}.profile-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.profile-hero-left{display:flex;align-items:center;gap:16px;min-width:0}.profile-avatar{width:56px;height:56px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--accent),var(--primary));color:#fff;font-size:20px;font-weight:750;display:grid;place-items:center;box-shadow:var(--shadow-sm);letter-spacing:.02em}.profile-meta{min-width:0}.profile-meta h1{margin:0 0 6px;font-size:22px;line-height:1.2}.profile-meta-tags{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.profile-reg-date{font-size:13px;color:var(--muted)}.profile-hero-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0}.profile-hero-wrap{margin-bottom:18px}.file-input-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-drop-zone{border:2px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);padding:36px 24px;text-align:center;cursor:pointer;transition:border-color var(--ease),background var(--ease),box-shadow var(--ease)}.file-drop-zone:hover,.file-drop-zone:focus-visible{border-color:var(--accent);background:var(--primary-100);outline:none}.file-drop-zone.dragging{border-color:var(--primary);background:var(--primary-100);box-shadow:var(--ring)}.file-drop-zone.busy{cursor:default;opacity:.75}.file-drop-content{display:flex;flex-direction:column;align-items:center;gap:8px}.file-drop-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--primary-200);color:var(--primary);margin-bottom:4px}.file-drop-label{font-size:15px;font-weight:600;color:var(--text);margin:0}.file-drop-link{color:var(--primary);text-decoration:underline;cursor:pointer}.file-drop-hint{font-size:13px;color:var(--muted);margin:0}.file-drop-spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--border-strong);border-top-color:var(--primary);animation:spin .7s linear infinite;margin-bottom:4px}.file-upload-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.file-upload-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);font-size:13.5px}.file-upload-item.done{background:var(--ok-bg);border-color:var(--ok)}.file-upload-item.error{background:var(--danger-bg);border-color:var(--danger)}.file-upload-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500}.file-upload-status{font-size:12px;font-weight:600;white-space:nowrap;color:var(--muted)}.file-upload-status.done{color:var(--ok)}.file-upload-status.error{color:var(--danger)}.file-list-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;color:var(--muted);text-align:center}.file-list-empty svg{opacity:.35}.file-list-empty p{margin:0;font-size:14px}.file-name-cell{display:flex;flex-direction:column;gap:2px}.file-orig-name{font-size:11.5px}.upload-entity-row{margin-bottom:16px}.back-nav{margin-bottom:14px}.back-nav button{background:none;border:0;padding:0;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);display:inline-flex;align-items:center;gap:5px;transition:color var(--ease)}.back-nav button:hover{color:var(--primary)}.enroll-list{display:flex;flex-direction:column;gap:14px}.enroll-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:16px}.enroll-name{font-size:15px;font-weight:700;margin-right:8px}.enroll-date{font-size:13px;color:var(--muted);white-space:nowrap}.mini-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px}.mini-stat-value{font-size:20px;font-weight:700;color:var(--text);line-height:1.15}.mini-stat-label{font-size:12px;color:var(--muted);margin-top:3px}.payment-summary{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow-sm)}.payment-summary-label{font-size:13px;font-weight:600;color:var(--muted)}.payment-summary-amount{font-size:20px;font-weight:750;color:var(--ok)}.note-list{margin-top:4px}.note-item{padding:14px 0;border-bottom:1px solid var(--border)}.note-item:first-child{padding-top:6px}.note-item:last-child{border-bottom:0;padding-bottom:0}.note-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.note-ts{font-size:12px;color:var(--muted-soft)}.note-body{margin:0;font-size:14px;line-height:1.55;color:var(--text)}.note-add-form{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.note-type-select{width:150px;flex-shrink:0}.note-text{flex:1;min-width:200px}.account-card{max-width:560px}.account-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.cell-truncate{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-strong{font-weight:600}.badge-xs{font-size:10px;padding:2px 7px}.badge-lg{font-size:13px;padding:5px 14px}:root{--color-bg-alt: var(--surface-2);--color-border: var(--border);--color-danger: var(--danger);--color-text-secondary: var(--muted)}.content{margin:0 auto}.page-head-panel,.card,.table-wrap,.stat-card{max-width:100%}.page-head-actions,.topbar-user,.form-row,.account-actions,.profile-meta-tags{min-width:0}.topbar{gap:16px}.topbar>div:first-child,.topbar-user{min-width:0}.topbar-user{flex-wrap:nowrap}.form-group{margin-bottom:14px}.form-label{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;color:#334155;font-size:12px;font-weight:750;letter-spacing:.01em}.form-control{width:100%;min-width:0}.flex{display:flex}.gap-2{gap:8px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mb-3{margin-bottom:12px}.alert-danger{background:var(--danger-bg);color:var(--danger)}.info-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a19268c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-box{width:min(100%,560px);max-height:min(88vh,760px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.modal-box .modal-head{justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-box .modal-head h3{margin:0}.modal-body{padding:20px}.modal-close{width:34px;height:34px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted)}.modal-close:hover{color:var(--text);border-color:var(--border-strong)}.broadcast-layout,.grid-2.broadcast-layout{grid-template-columns:minmax(280px,.9fr) minmax(0,1.25fr)}.recipient-panel-head,.card-head-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.recipient-list{max-height:360px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.recipient-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background var(--ease)}.recipient-item:last-child{border-bottom:0}.recipient-item:hover{background:var(--surface-2)}.recipient-item.selected{background:var(--primary-100)}.recipient-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.channel-row,.attachment-chip-list{display:flex;flex-wrap:wrap;gap:8px}.channel-chip,.attachment-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:8px 10px;color:var(--text);font-size:13px;font-weight:600}.attachment-chip button{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:var(--danger)}.attachment-chip button:hover{background:var(--danger-bg)}.file-uploader{width:100%}.file-drop-zone{min-height:168px}.card>.table-wrap:first-child,.card>.file-list-empty:first-child{border-radius:inherit}.card>.table-wrap{border-left:0;border-right:0}.file-name-cell{min-width:0}.file-orig-name{overflow-wrap:anywhere}.schedule-week-grid{display:grid;grid-template-columns:repeat(7,minmax(92px,1fr));gap:8px;overflow-x:auto;padding-bottom:4px}.schedule-day-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 8px;text-align:center;background:var(--surface-2);min-height:74px}.schedule-day-card.active{border-color:var(--primary);background:var(--primary-100)}.student-form-stack,.record-form-card,.card.form-section{width:100%}.table-wrap table{width:max(100%,760px)}.row-actions{min-width:150px}@media (max-width: 900px){.topbar{align-items:flex-start;flex-direction:column}.topbar-user{width:100%;justify-content:flex-start;flex-wrap:wrap}.page-head-panel,.page-head{align-items:flex-start}.page-head-actions{width:100%;justify-content:flex-start}.broadcast-layout,.grid-2.broadcast-layout{grid-template-columns:1fr}}@media (max-width: 640px){.content{padding:14px}.page-head-actions .btn,.page-head-actions .btn-secondary,.page-head-actions .btn-primary,.form-actions .btn,.form-actions .btn-secondary,.form-actions .btn-primary{width:100%}.profile-hero-left{align-items:flex-start}.profile-hero-right{align-items:stretch;width:100%}.tab-bar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:1px}.tab-btn{flex-shrink:0}.detail-grid{grid-template-columns:1fr;row-gap:3px}.detail-grid dt{padding-top:0}.mini-stat-row{grid-template-columns:1fr}.modal-backdrop{padding:12px;align-items:flex-start}}.portal-hero{align-items:flex-start;background:linear-gradient(180deg,#fff,var(--surface-2))}.portal-dashboard-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(360px,1.25fr);gap:18px;align-items:start}.instructor-dashboard-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.85fr)}.panel-head.compact{padding-bottom:14px}.portal-progress-card{padding:0;overflow:hidden}.portal-progress-body{padding:18px 20px 20px}.portal-progress-row+.portal-progress-row{margin-top:16px}.portal-progress-row>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:8px;color:var(--text)}.portal-progress-row strong{font-size:14px}.portal-progress-row span{color:var(--muted);font-size:13px}.portal-progress-track{height:10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden}.portal-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--primary))}.portal-action-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:20px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--border)}.portal-action-strip .quick-action{min-width:0}.lesson-list{display:grid;gap:1px;background:var(--border)}.lesson-row-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:14px 18px;background:var(--surface)}.lesson-row-card .btn-sm{white-space:nowrap}.lesson-date-pill{width:52px;min-height:56px;border-radius:var(--radius-sm);display:grid;place-items:center;align-content:center;border:1px solid var(--primary-200);background:var(--primary-100);color:var(--primary)}.lesson-date-pill strong{font-size:18px;line-height:1}.lesson-date-pill span{margin-top:4px;font-size:11px;font-weight:700;text-transform:uppercase}.lesson-row-main{min-width:0}.lesson-row-main strong,.approval-main strong{display:block;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-row-main small,.approval-main small{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}.empty-state.compact{min-height:120px;padding:24px;gap:10px}.instructor-approval-panel{padding:0;overflow:hidden;margin-bottom:18px}.approval-card-list{display:grid;gap:1px;background:var(--border)}.approval-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 18px;background:var(--surface)}.approval-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.btn-secondary.danger-soft{color:var(--danger);border-color:var(--danger-bg);background:var(--danger-bg)}.btn-secondary.danger-soft:hover{border-color:var(--danger);background:#fff}.calendar-panel{overflow:hidden}.calendar-panel>.lesson-calendar,.calendar-panel>.calendar-shell{border:0;border-radius:0;box-shadow:none}.pay-hero{margin-bottom:18px}.pay-hero h1{margin:0}.pay-hero .subtitle{color:var(--muted);font-size:14px;margin:4px 0 0}.pay-balance{display:flex;justify-content:space-between;align-items:flex-end;gap:18px 24px;flex-wrap:wrap;margin-top:20px}.pay-balance-label{display:inline-flex;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:750;color:var(--muted)}.pay-balance-amount{font-size:40px;font-weight:800;line-height:1.05;letter-spacing:-.02em;margin-top:4px;color:var(--text)}.pay-balance.is-clear .pay-balance-amount{color:var(--ok)}.pay-balance-sub{color:var(--muted);font-size:13px;margin-top:6px;max-width:46ch}.pay-balance-actions{display:flex;gap:10px;flex-wrap:wrap}.pay-trust{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.pay-trust-secure{display:inline-flex;align-items:center;gap:6px;font-weight:650;color:var(--text)}.pay-trust-secure svg{width:14px;height:14px}.pay-methods{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.pay-method-chip{border:1px solid var(--border);border-radius:5px;padding:2px 7px;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--muted);background:var(--surface-2)}.billing-list{display:grid;gap:1px;background:var(--border)}.invoice-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:14px 18px;background:var(--surface)}.invoice-row-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.invoice-row-head strong{font-size:14px;color:var(--text)}.invoice-row-main small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.invoice-row-amount{text-align:right;white-space:nowrap}.invoice-row-amount .amt{font-weight:700;font-size:14px;color:var(--text)}.invoice-row-amount small{display:block;margin-top:2px;font-size:12px}.invoice-row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.invoice-row-actions .btn-sm{white-space:nowrap}.pay-history{overflow-x:auto}@media (max-width: 640px){.pay-balance-amount{font-size:32px}.pay-balance-actions{width:100%}.pay-balance-actions .btn,.pay-balance-actions .btn-secondary{flex:1 1 auto}.invoice-row{grid-template-columns:minmax(0,1fr) auto}.invoice-row-actions{grid-column:1 / -1;justify-content:flex-start}}@media (max-width: 980px){.portal-dashboard-grid,.instructor-dashboard-grid,.portal-action-strip{grid-template-columns:1fr}.lesson-row-card{grid-template-columns:auto minmax(0,1fr) auto}.lesson-row-card .btn-sm{grid-column:2 / -1;justify-self:start}.approval-card{grid-template-columns:auto minmax(0,1fr)}.approval-actions{grid-column:2 / -1;justify-content:flex-start}}@media (max-width: 560px){.lesson-row-card{grid-template-columns:1fr}.lesson-date-pill{width:100%;min-height:44px;display:flex;gap:6px}.lesson-row-card .badge,.lesson-row-card .btn-sm{justify-self:start;grid-column:auto}.approval-card{grid-template-columns:1fr}.approval-actions{grid-column:auto}}.report-runner-shell{display:flex;flex-direction:column;gap:16px}.rr-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.rr-title{font-size:22px;font-weight:700;margin:0 0 4px}.rr-subtitle{font-size:13px;color:var(--muted);margin:0}.rr-actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:4px}.rr-filter-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 20px}.rr-filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap}.rr-filter-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px}.rr-filter-badge{background:var(--primary);color:#fff;font-size:11px;font-weight:700;border-radius:20px;padding:1px 7px}.rr-filter-actions{display:flex;gap:8px}.rr-filter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px 18px}.rr-filter-field{display:flex;flex-direction:column;gap:5px}.rr-filter-field label{font-size:12px;font-weight:600;color:var(--text)}.rr-filter-field input,.rr-filter-field select{width:100%;height:34px;padding:0 10px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.rr-filter-field select{cursor:pointer}.rr-filter-field input:focus,.rr-filter-field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.15)}.required-star{color:var(--danger);margin-left:3px}.rr-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--border)}.rr-row-count{font-size:13px;color:var(--muted);white-space:nowrap;min-width:80px}.rr-search-wrap{flex:1 1 200px}.rr-search{width:100%;height:34px;padding:0 10px 0 32px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.2-3.2'/%3E%3C/svg%3E") 10px center no-repeat;color:var(--text)}.rr-search:focus{outline:none;border-color:var(--primary)}.rr-pagesize{display:flex;align-items:center;gap:4px}.rr-pagesize-label{font-size:12px;color:var(--muted);white-space:nowrap;margin-right:4px}.rr-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.rr-table{width:100%;border-collapse:collapse;font-size:13px}.rr-th{padding:9px 12px;text-align:left;font-size:12px;font-weight:700;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.rr-th:hover{color:var(--text);background:var(--surface-2)}.rr-td{padding:8px 12px;border-bottom:1px solid var(--border-light, var(--border));vertical-align:top;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rr-table tbody tr:last-child .rr-td{border-bottom:none}.rr-table tbody tr:hover .rr-td{background:var(--surface-2, var(--surface))}.rr-null{color:var(--muted);font-style:italic}.rr-empty{padding:32px;text-align:center;color:var(--muted);font-size:14px}.sort-idle{opacity:.3;margin-left:4px;font-size:11px}.sort-active{margin-left:4px;font-size:11px;color:var(--primary);font-weight:700}.rr-pagination{display:flex;align-items:center;gap:6px;padding-top:6px;flex-wrap:wrap}.rr-page-info{font-size:13px;color:var(--muted);padding:0 6px}.rr-page-range{font-size:12px;margin-left:6px}.rr-loading{display:flex;align-items:center;gap:10px;padding:48px 0;color:var(--muted);font-size:14px}.rr-running{display:flex;align-items:center;gap:8px;padding:12px 0;color:var(--muted);font-size:13px}.rr-error-state{padding:32px;text-align:center;color:var(--danger)}.rr-run-error{padding:10px 14px;background:#fff0f0;border:1px solid #fca5a5;border-radius:6px;font-size:13px;color:var(--danger)}.rr-empty-state{text-align:center;padding:48px 24px;color:var(--muted)}.rr-empty-icon{font-size:36px;margin-bottom:10px}.rr-template-view{padding:20px}.rr-template-row{padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:12px}.rr-template-row:last-child{border-bottom:none;margin-bottom:0}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.spinner-sm{width:14px;height:14px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}@media print{.rr-header .rr-actions,.rr-filter-card,.rr-toolbar,.rr-pagination,.sidebar,.topbar{display:none!important}.rr-table-wrap{border:none;overflow:visible}.rr-td,.rr-th{white-space:normal;font-size:11px;padding:5px 8px}}.print-only{display:none}@media print{body.printing-region *{visibility:hidden!important}body.printing-region .print-area,body.printing-region .print-area *{visibility:visible!important}body.printing-region .print-area{position:absolute;left:0;top:0;width:100%;margin:0;padding:0;border:none;box-shadow:none;background:#fff}.no-print{display:none!important}.print-only{display:block!important}.print-area{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.print-area input:not([type=checkbox]):not([type=radio]),.print-area textarea,.print-area select{border:none!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;background-image:none!important;color:#000!important;opacity:1!important;padding:0 2px!important;min-height:0!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important}.print-area textarea{resize:none!important;overflow:hidden!important;min-height:2.4em!important}.print-area input[type=checkbox],.print-area input[type=radio]{-webkit-appearance:auto!important;-moz-appearance:auto!important;appearance:auto!important;opacity:1!important;filter:none!important;width:13px!important;height:13px!important;margin:0!important;vertical-align:middle;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}@media (max-width: 640px){.rr-filter-grid{grid-template-columns:1fr}.rr-toolbar{gap:8px}.rr-search-wrap{flex:1 1 100%}.rr-pagesize{flex-wrap:wrap}.rr-header{flex-direction:column}.rr-pagination{justify-content:center}}@media (min-width: 1440px){.content{max-width:1440px;padding:32px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr)}.chat-shell{height:min(760px,calc(100vh - 180px))}}@media (max-width: 1280px){.content{padding:24px}.dashboard-grid,.portal-dashboard-grid,.instructor-dashboard-grid,.email-split,.broadcast-layout,.grid-2.broadcast-layout{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.chat-shell{height:calc(100vh - 150px)}}@media (max-width: 1024px){:root{--sidebar-w: 212px}.content{padding:22px}.page-head-panel,.card{padding:18px}.stat-card{min-height:104px;padding:16px}.stat-value{font-size:23px}.form-grid,.form-grid.cols-3,.record-form-grid,.student-section .form-grid,.card.form-section>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-action-list,.portal-action-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-row-card{grid-template-columns:auto minmax(0,1fr) auto}.lesson-row-card .btn-sm{grid-column:2 / -1;justify-self:start}.approval-card{grid-template-columns:auto minmax(0,1fr)}.approval-actions{grid-column:2 / -1;justify-content:flex-start}}@media (max-width: 900px){body{overflow-x:hidden}.shell{display:block;min-height:100vh}.main{min-height:100vh}.content{max-width:none;padding:18px}.topbar{position:sticky;top:0;align-items:stretch;flex-direction:column;gap:10px;padding:10px 16px}.topbar>div:first-child,.topbar-user{width:100%}.topbar-user{justify-content:flex-start;flex-wrap:wrap;gap:8px}.topbar-user .user-email{max-width:min(100%,220px)}.page-head,.page-head-panel,.panel-head,.crud-toolbar,.card-head-row,.recipient-panel-head,.rr-header,.rr-toolbar,.rr-filter-header{align-items:flex-start}.page-head-actions,.crud-toolbar-meta,.form-actions,.record-form-actions,.pagination-actions,.rr-actions{width:100%;justify-content:flex-start}.search-field{max-width:none;width:100%}.table-wrap,.rr-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table,.rr-table-wrap table{min-width:720px}.modal,.modal-box{width:min(100%,620px)}.chat-shell{grid-template-columns:1fr;height:auto;min-height:0}.chat-sidebar{border-right:0;border-bottom:1px solid var(--border);max-height:280px}.chat-messages{min-height:360px;max-height:min(62vh,520px)}.schedule-week-grid{grid-template-columns:repeat(7,minmax(88px,1fr))}}@media (max-width: 760px){.content{padding:16px}.page-head{gap:12px;margin-bottom:16px}.page-head h1{font-size:22px;line-height:1.18}.page-head .subtitle{font-size:13px;line-height:1.45}.page-head-panel,.card,.stat-card{border-radius:var(--radius-sm)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat-card{align-items:flex-start;gap:12px;min-height:112px}.stat-icon{width:40px;height:40px;border-radius:var(--radius-sm)}.stat-icon svg{width:20px;height:20px}.stat-value{font-size:20px;overflow-wrap:anywhere}.stat-helper{font-size:11px}.form-grid,.form-grid.cols-3,.record-form-grid,.student-section .form-grid,.card.form-section>.form-grid,.grid-2,.portal-action-strip,.quick-action-list{grid-template-columns:1fr!important}.form-grid>*,.record-form-grid>*,.student-section .form-grid>*,.card.form-section>.form-grid>*,.grid-2>*,.grid-3>*{grid-column:auto!important}.panel-head,.form-card-head,.crud-toolbar,.record-form-grid,.record-form-actions,.pagination-bar,.portal-progress-body,.modal-body{padding-left:14px;padding-right:14px}.panel-head,.crud-toolbar,.card-head-row,.recipient-panel-head,.rr-header,.rr-toolbar,.rr-filter-header{flex-direction:column}.tabs,.tab-bar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:thin}.tab,.tab-btn{flex:0 0 auto}.lesson-row-card,.vehicle-alert-item,.approval-card{grid-template-columns:1fr;align-items:stretch}.lesson-row-card .badge,.lesson-row-card .btn-sm,.vehicle-alert-item .badge{justify-self:start;grid-column:auto}.lesson-date-pill{width:100%;min-height:44px;display:flex;gap:8px;justify-content:flex-start;padding:0 12px}.approval-actions{grid-column:auto;justify-content:flex-start}.chat-panel-head{align-items:flex-start}.chat-compose{flex-wrap:wrap;align-items:stretch}.chat-input{min-height:42px;width:100%;flex-basis:100%}.chat-send-btn,.chat-attach-btn{flex:0 0 auto}.modal-actions{flex-wrap:wrap}}@media (max-width: 640px){.content{padding:14px}.topbar-title{font-size:14px}.nav-toggle,.sidebar-collapse{width:38px;height:38px}.page-head-actions .btn,.page-head-actions .btn-secondary,.page-head-actions .btn-primary,.form-actions .btn,.form-actions .btn-secondary,.form-actions .btn-primary,.record-form-actions .btn,.record-form-actions .btn-secondary,.modal-actions .btn,.modal-actions .btn-secondary,.modal-actions .btn-danger{width:100%}.btn,.btn-secondary,.btn-danger,.btn-ghost{min-height:40px}.card{padding:14px}.card.form-section{padding:0}.table-wrap table,.rr-table-wrap table{min-width:660px}th,td{padding:10px 12px;font-size:13px}.chat-shell{border-radius:var(--radius-sm)}.chat-sidebar{max-height:240px}.chat-messages{min-height:320px;max-height:58vh;padding:12px}.chat-bubble{max-width:92%}.chat-attachment-preview{font-size:13px}.modal-overlay,.modal-backdrop{padding:10px;align-items:flex-start}.modal,.modal-box{max-height:calc(100vh - 20px);border-radius:var(--radius)}.modal-actions{gap:8px}.schedule-week-grid{grid-template-columns:repeat(7,minmax(74px,1fr))}}@media (max-width: 480px){.content{padding:12px}.topbar{padding:10px 12px}.topbar-user .badge{max-width:100%}.page-head-panel{padding:14px}.page-head h1{font-size:20px}.page-kicker{font-size:11px}.stat-grid{grid-template-columns:1fr!important}.stat-card{min-height:auto}.stat-value{font-size:21px}.quick-action{padding:13px 14px}.quick-action-icon{width:34px;height:34px}.badge{white-space:normal;text-align:left;line-height:1.25}.crud-toolbar .btn,.crud-toolbar .btn-secondary,.pagination-actions .btn,.pagination-actions .btn-secondary,.rr-actions .btn,.rr-actions .btn-secondary{width:100%}input,select,textarea{font-size:16px}.chat-conv-row{align-items:flex-start}.chat-conv-time{display:none}.chat-panel-head{padding:12px}.chat-compose{padding:10px 12px}.chat-empty{padding:24px 14px}.recipient-list,.chat-recipient-list{max-height:240px}}@media (max-width: 380px){.content{padding:10px}.page-head-panel,.card{padding:12px}.stat-card{padding:14px}.stat-icon{width:36px;height:36px}.lesson-row-card,.approval-card,.vehicle-alert-item{padding:12px}.panel-head{padding:14px 12px}.table-wrap table,.rr-table-wrap table{min-width:600px}.sidebar{width:min(86vw,var(--sidebar-w))}}@media (max-height: 720px) and (min-width: 901px){.sidebar{padding-top:12px;padding-bottom:12px}.brand{padding-bottom:10px;margin-bottom:4px}.nav-group{margin-top:12px}.sidebar nav a{padding-top:8px;padding-bottom:8px}.chat-shell{min-height:420px;height:calc(100vh - 128px)}}.doc-request{margin-bottom:16px}.doc-request-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.doc-request-meta{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}.doc-item-list{margin-top:12px;display:flex;flex-direction:column;gap:10px}.doc-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:12px 14px}.doc-item-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.doc-item-title{font-weight:600}.doc-item-desc{margin:6px 0 0;font-size:13px}.doc-reject-reason{margin:8px 0 0;font-size:13px;color:var(--danger);background:#c0392b12;border-radius:var(--radius-sm);padding:8px 10px}.doc-file-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.doc-file-name{font-size:13px;font-weight:600;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-upload-slot{margin-top:10px}.preset-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.preset-chip{background:var(--surface-2);border:1px dashed var(--border-strong);color:var(--text);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;cursor:pointer}.preset-chip:hover{background:var(--primary-100);border-color:var(--primary);color:var(--primary-dark)}.preset-chip.selected{background:var(--primary);border-color:var(--primary);border-style:solid;color:#fff}.preset-chip.selected:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.selected-docs{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;background:var(--primary-100);border:1px solid var(--primary-200);border-radius:var(--radius-sm)}.selected-docs-label{font-size:12.5px;font-weight:700;color:var(--primary-darker);white-space:nowrap;padding-top:3px}.selected-docs-list{display:flex;flex-wrap:wrap;gap:6px}.selected-doc-pill{background:var(--primary);color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.doc-item.selected{border-color:var(--primary);border-left:3px solid var(--primary);background:var(--primary-100)}
