:root{--color-primary:#1a8641;--color-text:#1c2529;--color-muted:#6b7780;--color-background:#f6f7f8;--color-surface:#ffffff;--color-border:#e8eaed;--color-white:#ffffff;--calendar-offline-pending-bg:#d3e7ff;--calendar-offline-pending-text:#0b57a4;--calendar-offline-confirmed-bg:#007aff;--calendar-offline-confirmed-text:#ffffff;--calendar-online-pending-bg:#d6eede;--calendar-online-pending-text:#146b36;--calendar-online-confirmed-bg:#1a8641;--calendar-online-confirmed-text:#ffffff;--calendar-cancelled-bg:#e7e8ea;--calendar-cancelled-text:#6e767d;--calendar-rescheduled-bg:#fbe2eb;--calendar-rescheduled-text:#a81e4d;--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;--font-size-xs:9px;--font-size-sm:11px;--font-size-md:14px;--font-size-lg:18px;--font-size-title:24px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.6;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-xs:0 1px 2px rgba(0,0,0,0.04);--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--calendar-max-width:1240px;--calendar-cell-desktop:94px;--calendar-cell-tablet:92px;--calendar-cell-phone:64px;--calendar-gap-desktop:6px;--calendar-gap-tablet:5px;--calendar-gap-phone:3px;--calendar-padding-desktop:6px;--calendar-padding-tablet:5px;--calendar-padding-phone:4px;--calendar-date-desktop:13px;--calendar-date-tablet:12px;--calendar-date-phone:11px;--calendar-segment-height-desktop:18px;--calendar-segment-height-tablet:17px;--calendar-segment-height-phone:14px;--calendar-segment-text-desktop:11px;--calendar-segment-text-tablet:10.5px;--calendar-segment-text-phone:9px;--color-error:#b91c1c;--color-error-bg:#fef2f2;--radius-card:16px;--radius-control:10px;--shadow-card:0 2px 8px rgba(0,0,0,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-background)}button,input{font:inherit}button,input{min-height:44px}input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-control);padding:10px 12px;background:#fff}button:focus-visible,input:focus-visible{outline:3px solid rgba(37,99,235,.35)}.shell{min-height:100vh;padding:24px}.card{max-width:420px;margin:24px auto;padding:20px;border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:var(--color-surface)}.modal{position:fixed;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.12)}.modal>div{width:min(90vw,380px);background:white;border-radius:var(--radius-card);padding:20px}.auth-shell{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:24px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.auth-card{width:min(100%,420px);padding:32px;background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.auth-card h1{margin:0 0 24px;font-size:24px}.form-field{margin-bottom:18px}.form-field label{display:block;margin-bottom:8px;font-size:14px}.auth-button,.auth-secondary{border-radius:var(--radius-control);padding:10px 18px;cursor:pointer}.auth-button{border:1px solid var(--color-primary);background:var(--color-primary);color:white}.auth-secondary{border:1px solid var(--color-border);background:white;color:var(--color-text)}.auth-actions{display:flex;gap:12px}.auth-actions>*{flex:1 1}.auth-error{margin-bottom:16px;padding:12px;border-radius:var(--radius-control);color:var(--color-error);background:var(--color-error-bg)}@media (max-width:640px){.auth-card{padding:24px;box-shadow:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.richard-shell{width:100%;max-width:none;margin:0 auto;padding:16px max(18px,calc((100vw - 1100px) / 2),env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,calc((100vw - 1100px) / 2),env(safe-area-inset-left))}.richard-title{color:#111827;font-weight:700;line-height:1.2;text-align:center}.richard-notice{margin-bottom:16px;padding:12px 14px;border-radius:12px;background:#f9fafb}.richard-empty{padding:24px;border-radius:16px;background:#f9fafb;color:#4b5563;text-align:center}.richard-card{position:relative;display:flex;flex-direction:column;gap:8px;margin-bottom:16px;padding:20px;border:1px solid #e5e7eb;border-radius:16px;background:#ffffff;box-shadow:0 2px 8px rgba(0,0,0,.06)}.richard-card[data-state=CONFIRMED][data-mode=OFFLINE]{border-color:#93c5fd;background:#dbeafe}.richard-card[data-state=CONFIRMED][data-mode=ONLINE]{border-color:#86efac;background:#dcfce7}.richard-card[data-state=CANCELLED]{border-color:#4b5563;background:#4b5563;color:#ffffff}.richard-card[data-state=CANCELLED] .richard-date,.richard-card[data-state=CANCELLED] .richard-duration,.richard-card[data-state=CANCELLED] .richard-notes,.richard-card[data-state=CANCELLED] .richard-time{color:#ffffff}.richard-card[data-state=PENDING]{background:#fafafa}.richard-date{margin:0;color:#111827;font-size:18px;font-weight:650}.richard-time{margin:0;font-size:22px;font-weight:700;letter-spacing:.01em}.richard-duration{margin:0;color:#374151}.richard-pill{display:inline-flex;align-self:flex-start;align-items:center;width:-moz-fit-content;width:fit-content;min-height:28px;padding:4px 10px;border-radius:999px;background:#e5e7eb;color:#1f2937;font-size:13px}.richard-card[data-state=CANCELLED] .richard-pill{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.18);color:#ffffff}.richard-rescheduled{display:inline-flex;width:-moz-fit-content;width:fit-content;margin:0;padding:4px 10px;border-radius:999px;background:#fce7f3;color:#9d174d;font-size:13px}.richard-notes{margin:8px 0 0;color:#6b7280;font-size:14px}.richard-confirm-button,.richard-later-button{min-height:44px;padding:10px 16px;border-radius:10px}.richard-bulk-confirm-all,.richard-bulk-trigger,.richard-card-confirm-button{min-height:44px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.richard-confirm-button{width:100%;border:1px solid #1a8641;background:#1A8641;color:#ffffff;font-weight:700}.richard-later-button{width:auto;border:1px solid #e8eaed;background:#FFFFFF;color:#1C2529;font-weight:600}.richard-bulk-overlay,.richard-dialog-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgba(20,26,30,.18)}.richard-bulk-modal,.richard-dialog{width:min(468px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow-x:visible;overflow-y:auto;padding:24px;border:1px solid #e8eaed;border-radius:16px;background:#ffffff;box-shadow:0 18px 48px rgba(16,24,40,.16)}.richard-bulk-modal,.richard-dialog[data-variant=confirmation]{display:flex;flex-direction:column;gap:16px}.richard-dialog[data-variant=confirmation]{min-height:276px;justify-content:flex-start;gap:0}.richard-dialog[data-variant=confirmation] .richard-dialog-title{margin-bottom:22px}.richard-dialog[data-variant=confirmation] .richard-dialog-summary{margin-bottom:26px}.richard-dialog[data-variant=confirmation] .richard-dialog-description{margin-bottom:40px}.richard-dialog-title{margin:0;color:#1C2529;font-size:20px;font-weight:700;line-height:1.3}.richard-dialog-description{margin:0;color:#6B7780;font-size:12px;line-height:1.5}.richard-dialog-summary{display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;gap:8px;margin:0}.richard-course-summary{margin:0;font-size:16px;font-weight:700;line-height:1.35;white-space:nowrap}.richard-course-type{width:-moz-fit-content;width:fit-content;margin:0;padding:3px 8px;border-radius:999px;color:#374151;font-size:14px}.richard-bulk-duration-offline,.richard-course-type-offline{background:#D8E9FB;color:#1768A6}.richard-bulk-duration-online,.richard-course-type-online{background:#D6EEDE;color:#146B36}.richard-bulk-actions,.richard-dialog-actions{display:flex;gap:8px}.richard-dialog-actions-confirmation{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr)}.richard-dialog-actions-confirmation .richard-confirm-button,.richard-dialog-actions-confirmation .richard-later-button{width:100%;min-width:0}.richard-bulk-actions{flex-direction:column}.richard-dialog-actions>button{flex:0 0 auto;min-width:0}.richard-confirm-success{padding:8px 12px;border-radius:10px;background:#dcfce7;color:#166534}.richard-dialog-error{color:#991b1b}button:focus-visible,input:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}.richard-bulk-trigger{width:-moz-fit-content;width:fit-content;border:1px solid #1a8641;border-radius:10px;background:#dcfce7;color:#166534;padding:9px 14px;font-weight:700}.richard-bulk-list{display:grid;grid-gap:0;gap:0;margin:0;padding:0}.richard-bulk-item{padding:8px 0}.richard-bulk-item:last-child{border-bottom:0}.richard-bulk-item p{margin:0}.richard-bulk-confirm-all{width:100%;border:1px solid #1a8641;border-radius:10px;background:#1A8641;color:#ffffff;padding:9px 14px;font-weight:700}@media (max-width:640px){.richard-shell{padding-top:14px}.richard-dialog{width:min(330px,calc(100vw - 32px));padding:16px}}@media (max-width:360px){.richard-course-summary{font-size:15px}}.admin-calendar-course-link,.admin-course-link{display:block;border-radius:16px;color:inherit;text-decoration:none}.admin-calendar-course-link:focus-visible,.admin-course-link:focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px}.admin-calendar-course-link{border-radius:10px}.admin-course-detail,.admin-course-form{width:min(100%,720px)}.admin-course-form{display:grid;grid-gap:20px;gap:20px;border:1px solid #dbe4f0;border-radius:18px;background:#ffffff;padding:20px;box-shadow:0 2px 8px rgba(15,23,42,.05)}.admin-form-field{display:grid;grid-gap:7px;gap:7px}.admin-form-field label,.admin-form-fieldset legend{color:#334155;font-size:14px;font-weight:700}.admin-form-field input,.admin-form-field select,.admin-form-field textarea,.admin-form-fieldset input{font:inherit}.admin-form-field input,.admin-form-field select,.admin-form-field textarea{width:100%;min-height:44px;border:1px solid #cbd5e1;border-radius:10px;background:#ffffff;color:#111827;padding:10px 12px}.admin-form-field textarea{resize:vertical}.admin-form-fieldset{min-width:0;margin:0;border:0;padding:0}.admin-form-fieldset legend{margin-bottom:10px;padding:0}.admin-form-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.admin-radio-group{display:flex;flex-wrap:wrap;gap:10px}.admin-radio-group label{display:inline-flex;min-height:44px;align-items:center;gap:8px;border:1px solid #cbd5e1;border-radius:10px;padding:9px 14px;cursor:pointer}.admin-radio-group input{width:18px;min-height:18px;margin:0}.admin-course-actions button,.admin-danger-button,.admin-primary-button,.admin-secondary-button{min-height:44px;border-radius:10px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer}.admin-primary-button{border:1px solid #2563eb;background:#2563eb;color:#ffffff}.admin-course-actions button,.admin-secondary-button{border:1px solid #cbd5e1;background:#ffffff;color:#111827}.admin-danger-button{border:1px solid #b91c1c;background:#b91c1c;color:#ffffff}.admin-course-actions button:disabled,.admin-danger-button:disabled,.admin-primary-button:disabled,.admin-secondary-button:disabled{cursor:not-allowed;opacity:.6}.admin-form-error{margin:0;border-radius:10px;background:#fef2f2;color:#991b1b;padding:11px 13px}.admin-notice{width:min(100%,720px);margin:0 0 16px;border-radius:12px;background:#eff6ff;color:#1e3a8a;padding:12px 14px}.admin-course-detail{border:1px solid #dbe4f0;border-radius:18px;background:#ffffff;padding:20px;box-shadow:0 2px 8px rgba(15,23,42,.05)}.admin-course-detail[data-status=unconfirmed]{background:#f8fafc}.admin-course-detail[data-status=rescheduled-pending]{border-color:#f9a8d4;background:#fdf2f8}.admin-course-detail[data-status=confirmed-offline]{border-color:#7dd3fc;background:#e0f2fe}.admin-course-detail[data-status=confirmed-online]{border-color:#86efac;background:#dcfce7}.admin-course-detail[data-status=cancelled]{border-color:#4b5563;background:#4b5563;color:#ffffff}.admin-course-detail-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px}.admin-course-detail-date,.admin-course-detail-time{margin:0}.admin-course-detail-date{font-size:16px;font-weight:700}.admin-course-detail-time{margin-top:6px;font-size:21px;font-weight:750}.admin-course-detail-list{display:grid;grid-gap:14px;gap:14px;margin:24px 0 0}.admin-course-detail-list>div{display:grid;grid-template-columns:minmax(74px,110px) minmax(0,1fr);grid-gap:12px;gap:12px}.admin-course-detail-list dt{color:#64748b;font-size:14px;font-weight:700}.admin-course-detail-list dd{margin:0;white-space:pre-wrap}.admin-course-detail[data-status=cancelled] .admin-course-detail-list dt{color:#e5e7eb}.admin-course-detail[data-status=cancelled] .admin-pill{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.16);color:#ffffff}.admin-course-actions{display:flex;width:min(100%,720px);flex-wrap:wrap;gap:10px;margin-top:18px}.admin-course-readonly{margin:0;color:#64748b}.admin-course-dialog-overlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;overflow-y:auto;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:rgba(15,23,42,.28)}.admin-course-dialog{position:relative;width:min(94vw,620px);max-height:calc(100svh - 36px);overflow-y:auto;border-radius:18px;background:#ffffff;padding:22px;box-shadow:0 18px 50px rgba(15,23,42,.22)}.admin-course-dialog h2{margin:0 48px 8px 0;font-size:21px}.admin-course-dialog-description{margin:0 0 18px;color:#64748b;line-height:1.55}.admin-course-dialog-close{position:absolute;top:10px;right:10px;width:44px;min-height:44px;border:0;border-radius:10px;background:transparent;color:#334155;font-size:23px;cursor:pointer}.admin-course-dialog form{display:grid;grid-gap:18px;gap:18px}.admin-course-dialog-actions{display:flex;gap:10px}.admin-course-dialog-actions>button{flex:1 1}.admin-course-original-time{border-radius:12px;background:#f8fafc;padding:13px}.admin-course-original-time h3,.admin-course-original-time p{margin:0}.admin-course-original-time h3{margin-bottom:6px;color:#64748b;font-size:13px}.admin-course-detail button:focus-visible,.admin-course-dialog :is(input,select,textarea,button):focus-visible,.admin-course-form :is(input,select,textarea,button):focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px}@media (min-width:640px){.admin-course-detail,.admin-course-form{padding:24px}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:460px){.admin-course-dialog-actions{gap:8px}.admin-course-dialog{padding:18px}}@media (prefers-reduced-motion:reduce){.admin-calendar-course-link,.admin-course-dialog,.admin-course-link{transition:none}}.admin-shell{min-height:100svh;background:#f8fafc;color:#111827}.admin-skip-link{position:fixed;z-index:200;top:8px;left:8px;transform:translateY(-150%);padding:10px 14px;border-radius:8px;background:#111827;color:#ffffff}.admin-skip-link:focus{transform:translateY(0)}.admin-sidebar{border-bottom:1px solid #e5e7eb;background:#ffffff;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left))}.admin-brand{margin-bottom:12px;font-size:17px;font-weight:700;letter-spacing:.01em}.admin-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.admin-nav a{display:inline-flex;min-height:44px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:10px;padding:8px 13px;color:#374151;text-decoration:none;white-space:nowrap}.admin-nav a:hover{background:#f3f4f6}.admin-nav a[aria-current=page]{background:#e0e7ff;color:#3730a3;font-weight:650}.admin-main{width:min(100%,1240px);margin:0 auto;padding:24px max(16px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.admin-page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.admin-page-header h1{margin:0;font-size:clamp(26px,4vw,36px);line-height:1.15}.admin-eyebrow{margin:0 0 6px;color:#6b7280;font-size:13px;font-weight:650;letter-spacing:.04em}.admin-empty,.admin-error,.admin-state{border:1px solid #e5e7eb;border-radius:14px;background:#ffffff;padding:22px}.admin-empty,.admin-state{color:#4b5563}.admin-error{border-color:#fecaca;background:#fff7f7;color:#991b1b}.admin-error p{margin:0 0 14px}.admin-calendar-toolbar button,.admin-error button{min-height:44px;border:1px solid #cbd5e1;border-radius:10px;background:#ffffff;color:#111827;padding:9px 14px;cursor:pointer}.admin-calendar-toolbar button:hover:not(:disabled),.admin-error button:hover{background:#f8fafc}.admin-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.admin-summary-card{border:1px solid #dbe4f0;border-radius:16px;background:#ffffff;padding:20px;box-shadow:0 2px 8px rgba(15,23,42,.05)}.admin-summary-card p{margin:0 0 8px;color:#64748b}.admin-summary-card strong{font-size:32px;line-height:1}.admin-section{margin-top:30px}.admin-section h2{margin:0 0 14px;font-size:20px}.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-section-heading a{min-height:44px;display:inline-flex;align-items:center;color:#1d4ed8}.admin-quick-links{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.admin-quick-links a{display:flex;min-height:52px;align-items:center;border:1px solid #dbe4f0;border-radius:12px;background:#ffffff;padding:12px 16px;color:#1f2937;font-weight:650;text-decoration:none}.admin-quick-links a:hover{border-color:#93c5fd;background:#eff6ff}.admin-course-list{display:grid;grid-template-columns:1fr;grid-gap:14px;gap:14px}.admin-course-card{border:1px solid #dbe4f0;border-radius:16px;background:#ffffff;padding:18px;box-shadow:0 2px 8px rgba(15,23,42,.05)}.admin-course-card[data-status=unconfirmed]{background:#f8fafc}.admin-course-card[data-status=rescheduled-pending]{border-color:#f9a8d4;background:#fdf2f8}.admin-course-card[data-status=confirmed-offline]{border-color:#7dd3fc;background:#e0f2fe}.admin-course-card[data-status=confirmed-online]{border-color:#86efac;background:#dcfce7}.admin-course-card[data-status=cancelled]{border-color:#4b5563;background:#4b5563;color:#ffffff}.admin-course-card-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.admin-course-date,.admin-course-duration,.admin-course-notes,.admin-course-student,.admin-course-time{margin:0}.admin-course-date{font-size:16px;font-weight:700}.admin-course-time{margin-top:5px;font-size:21px;font-weight:750}.admin-course-student{margin-top:14px;font-size:17px;font-weight:650}.admin-course-duration{margin-top:5px;color:#475569;font-size:14px}.admin-course-notes{margin-top:12px;color:#64748b;font-size:14px;line-height:1.5}.admin-course-card[data-status=cancelled] .admin-course-duration,.admin-course-card[data-status=cancelled] .admin-course-notes{color:#ffffff}.admin-calendar-course-meta,.admin-course-pills{display:flex;flex-wrap:wrap;gap:6px}.admin-pill{display:inline-flex;min-height:26px;align-items:center;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;line-height:1.25}.admin-pill-status{border:1px solid rgba(15,23,42,.12);background:rgba(255,255,255,.72);color:#1f2937}.admin-pill-muted{background:#e5e7eb;color:#374151}.admin-pill-rescheduled{background:#fce7f3;color:#9d174d}.admin-course-card[data-status=cancelled] .admin-pill{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.16);color:#ffffff}.admin-calendar-header{align-items:center}.admin-calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.admin-calendar-toolbar button:disabled{cursor:not-allowed;opacity:.55}.admin-calendar-month{min-width:104px;text-align:center}.admin-calendar-grid{display:none}.admin-calendar-agenda{display:grid;grid-gap:20px;gap:20px}.admin-agenda-group h2{margin:0 0 10px;font-size:16px}.admin-calendar-course{border:1px solid #dbe4f0;border-radius:10px;background:#ffffff;padding:9px}.admin-calendar-course[data-status=unconfirmed]{background:#f8fafc}.admin-calendar-course[data-status=rescheduled-pending]{border-color:#f9a8d4;background:#fdf2f8}.admin-calendar-course[data-status=confirmed-offline]{border-color:#7dd3fc;background:#e0f2fe}.admin-calendar-course[data-status=confirmed-online]{border-color:#86efac;background:#dcfce7}.admin-calendar-course[data-status=cancelled]{border-color:#4b5563;background:#4b5563;color:#ffffff}.admin-calendar-course-student,.admin-calendar-course-time{margin:0}.admin-calendar-course-time{font-size:13px;font-weight:750}.admin-calendar-course-student{margin-top:4px;font-size:13px}.admin-calendar-course-meta{margin-top:7px}.admin-calendar-course[data-status=cancelled] .admin-pill{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.16);color:#ffffff}.admin-main:focus-visible,.admin-shell a:focus-visible,.admin-shell button:focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px}@media (min-width:640px){.admin-main{padding:30px max(24px,env(safe-area-inset-right)) max(40px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.admin-quick-links{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-course-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.admin-shell{display:grid;grid-template-columns:220px minmax(0,1fr)}.admin-sidebar{position:-webkit-sticky;position:sticky;top:0;min-height:100svh;align-self:start;border-right:1px solid #e5e7eb;border-bottom:0;padding:28px 18px max(28px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.admin-brand{margin-bottom:24px;font-size:19px}.admin-nav{flex-direction:column;overflow:visible}.admin-nav a{justify-content:flex-start}.admin-main{padding:36px 32px 48px}.admin-summary-grid{max-width:560px}.admin-course-list{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-calendar-agenda{display:none}.admin-calendar-grid{display:block;overflow:hidden;border:1px solid #dbe4f0;border-radius:16px;background:#ffffff}.admin-calendar-days,.admin-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.admin-calendar-weekdays{border-bottom:1px solid #dbe4f0;background:#f8fafc}.admin-calendar-weekdays>div{padding:11px 8px;color:#475569;font-size:13px;font-weight:700;text-align:center}.admin-calendar-day{min-height:154px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:9px}.admin-calendar-day:nth-child(7n){border-right:0}.admin-calendar-day-empty{background:#f8fafc}.admin-calendar-day-number{display:inline-flex;min-width:28px;min-height:28px;align-items:center;justify-content:center;border-radius:50%;color:#475569;font-size:13px;font-weight:700}.admin-calendar-day-courses{display:grid;grid-gap:7px;gap:7px;margin-top:7px}}@media (prefers-reduced-motion:reduce){.admin-skip-link{transition:none}}.share-shell{width:min(100%,760px);min-height:100svh;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));color:#111827}.share-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px}.share-header .calendar-toolbar{margin-left:auto}.share-header h1{margin:0;font-size:clamp(24px,5vw,32px);line-height:1.2;letter-spacing:-.01em}.share-eyebrow{margin:0 0 7px;color:#64748b;font-size:13px;font-weight:700;letter-spacing:.04em}.share-range{margin:12px 0 0;color:#64748b;font-size:14px;line-height:1.55}.share-empty,.share-error,.share-state{border:1px solid #e2e8f0;border-radius:14px;background:#ffffff;padding:20px}.share-empty,.share-state{color:#475569}.share-error{border-color:#fecaca;background:#fff7f7;color:#991b1b}.share-error p{margin:0 0 14px}.share-error button{min-height:44px;border:1px solid #cbd5e1;border-radius:10px;background:#ffffff;color:#111827;padding:9px 16px;cursor:pointer}.share-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.share-stats article{min-width:0;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;padding:15px}.share-stats article:last-child{grid-column:1/-1}.share-stats p{margin:0 0 8px;color:#64748b;font-size:13px;font-weight:650}.share-stats strong{font-size:27px;line-height:1}.share-stats span{margin-left:4px;color:#64748b;font-size:13px}.share-course-section{margin-top:30px}.share-course-section h2{margin:0 0 14px;font-size:20px}.share-course-list{display:grid;grid-gap:14px;gap:14px}.share-course-card{border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;padding:18px;box-shadow:0 2px 8px rgba(15,23,42,.05)}.share-course-card[data-state=pending]{background:#f8fafc}.share-course-card[data-state=rescheduled-pending]{border-color:#f9a8d4;background:#fdf2f8}.share-course-card[data-state=confirmed-offline]{border-color:#7dd3fc;background:#e0f2fe}.share-course-card[data-state=confirmed-online]{border-color:#86efac;background:#dcfce7}.share-course-card[data-state=cancelled]{border-color:#4b5563;background:#4b5563;color:#ffffff}.share-course-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.share-course-date,.share-course-duration,.share-course-notes,.share-course-time{margin:0}.share-course-date{font-size:16px;font-weight:700}.share-course-time{margin-top:5px;font-size:21px;font-weight:750;letter-spacing:.01em}.share-course-duration{margin-top:13px;color:#475569;font-size:14px}.share-course-notes{margin-top:11px;color:#64748b;font-size:14px;line-height:1.55;white-space:pre-wrap}.share-course-pills{display:flex;flex-wrap:wrap;gap:6px}.share-pill{display:inline-flex;min-height:27px;align-items:center;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;line-height:1.25}.share-pill-status{border:1px solid rgba(15,23,42,.12);background:rgba(255,255,255,.75);color:#1f2937}.share-pill-mode{background:#e5e7eb;color:#374151}.share-pill-rescheduled{background:#fce7f3;color:#9d174d}.share-course-card[data-state=cancelled] .share-course-duration,.share-course-card[data-state=cancelled] .share-course-notes{color:#ffffff}.share-course-card[data-state=cancelled] .share-pill{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.16);color:#ffffff}.share-shell button:focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px}.share-shell button:disabled{cursor:not-allowed;opacity:.6}@media (min-width:640px){.share-shell{padding:max(32px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(42px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}.share-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.share-stats article:last-child{grid-column:auto}}@media (prefers-reduced-motion:reduce){.share-course-card,.share-error button{transition:none}}.admin-history-panel{width:min(100%,720px);margin-top:18px;border:1px solid #dbe4f0;border-radius:16px;background:#ffffff;overflow:hidden}.admin-capability-actions{display:flex;flex-wrap:wrap;gap:10px}.admin-capability-actions button{min-height:44px}.admin-capability-url{display:grid;grid-gap:10px;gap:10px;margin-top:16px}.admin-capability-url input{min-height:44px}.admin-history-panel-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px}.admin-history-panel-heading h2{margin:0;font-size:19px}.admin-history-toggle{min-height:44px;border:1px solid #cbd5e1;border-radius:10px;background:#ffffff;color:#1f2937;padding:9px 14px;font:inherit;font-weight:700;cursor:pointer}.admin-history-toggle:hover{background:#f8fafc}.admin-history-content{border-top:1px solid #e2e8f0;padding:18px}.admin-history-sections{display:grid;grid-gap:28px;gap:28px}.admin-history-sections h3{margin:0 0 13px;font-size:17px}.admin-history-list{display:grid;grid-gap:12px;gap:12px;margin:0;padding:0;list-style:none}.admin-history-item{position:relative;border-left:3px solid #cbd5e1;border-radius:0 12px 12px 0;background:#f8fafc;padding:14px 15px}.admin-history-item:before{position:absolute;top:18px;left:-7px;width:11px;height:11px;border:2px solid #ffffff;border-radius:50%;background:#64748b;content:""}.admin-history-item-heading{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.admin-history-item-heading h4{margin:0;font-size:15px}.admin-history-badge{display:inline-flex;min-height:25px;align-items:center;border-radius:999px;background:#e2e8f0;color:#334155;padding:3px 8px;font-size:12px;font-weight:700}.admin-history-badge-rescheduled{background:#fce7f3;color:#9d174d}.admin-history-changes{display:grid;grid-gap:9px;gap:9px;margin:13px 0 0}.admin-history-changes>div{display:grid;grid-template-columns:minmax(54px,72px) minmax(0,1fr);grid-gap:10px;gap:10px}.admin-history-changes dt{color:#64748b;font-size:13px;font-weight:700}.admin-history-changes dd{margin:0;overflow-wrap:anywhere;line-height:1.5;white-space:pre-wrap}.admin-history-confirmed,.admin-history-meta,.admin-history-muted,.admin-history-reason{margin:10px 0 0;color:#64748b;font-size:13px;line-height:1.5}.admin-history-reason{color:#475569;white-space:pre-wrap}.admin-history-confirmed{color:#166534}.admin-history-error,.admin-history-state{margin:0;border-radius:12px;background:#f8fafc;color:#475569;padding:14px}.admin-history-error{border:1px solid #fecaca;background:#fff7f7;color:#991b1b}.admin-history-error p{margin:0 0 12px}.admin-history-error button{min-height:44px;border:1px solid #cbd5e1;border-radius:10px;background:#ffffff;color:#111827;padding:9px 14px;font:inherit;font-weight:700;cursor:pointer}.admin-history-panel button:focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px}@media (min-width:720px){.admin-history-content{padding:22px}.admin-history-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}@media (max-width:480px){.admin-history-panel-heading{align-items:stretch}.admin-history-toggle{width:100%}.admin-history-changes>div{grid-template-columns:1fr;gap:3px}}@media (prefers-reduced-motion:reduce){.admin-history-item,.admin-history-panel{transition:none}}.admin-brand,.richard-brand,.share-header{display:flex;align-items:center;gap:12px}.admin-shell,.richard-shell,.share-shell{background:#fbfbfd}.richard-title{margin-top:14px}.richard-card,.share-course-card{box-shadow:0 8px 24px rgba(15,23,42,.06)}.admin-shell,.richard-shell,.share-shell{padding-top:16px;padding-bottom:16px}.admin-brand,.richard-title,.share-header{margin-bottom:8px}@media (max-height:700px) and (orientation:landscape){.shell{padding:12px}.admin-shell,.richard-shell,.share-shell{padding-top:8px;padding-bottom:8px}.calendar-header,.calendar-toolbar,.richard-title{margin-top:4px;margin-bottom:4px}}.richard-topbar,.share-header{gap:8px}.calendar-toolbar{gap:4px}@media (max-height:500px) and (orientation:landscape){.share-shell,.shell{padding:8px}.richard-topbar,.share-header{flex-direction:row;min-height:44px}.richard-title,.share-header h1{margin:0;font-size:22px}}.richard-shell,.share-shell{min-width:0}.richard-topbar,.share-header{display:flex;align-items:center;gap:var(--space-2)}.richard-topbar{margin-bottom:var(--space-2)}.richard-title,.share-header h1{margin:0}.calendar-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}@media (max-height:500px) and (orientation:landscape){.richard-shell,.share-shell{padding:8px}.richard-topbar,.share-header{display:flex;flex-direction:row;align-items:center;min-height:44px;margin-bottom:4px}.richard-title,.share-header h1{font-size:20px;line-height:1.1}.calendar-toolbar{position:absolute;top:8px;right:8px;min-height:44px}.share-shell{padding-top:8px;padding-bottom:8px}.share-header{margin-bottom:8px;gap:6px}.share-header h1{font-size:22px}}.richard-bulk-overlay{overflow-y:auto}.richard-bulk-modal h2,.richard-bulk-modal p{margin:0}.richard-bulk-heading{flex-wrap:wrap;gap:6px}.richard-bulk-row{display:flex;flex-wrap:nowrap;gap:6px;margin:0}.richard-bulk-row span{flex:0 0 auto}.richard-bulk-row span:last-child{border-radius:999px;padding:2px 8px;font-weight:700}.richard-bulk-review-summary{color:#374151;font-size:14px}.richard-bulk-success{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;color:#1C2529}.richard-bulk-success>p:not(.richard-bulk-success-description){margin:0;color:#166534;font-size:18px;font-weight:700}.richard-bulk-success>[data-visual=success-check]{display:grid;width:40px;height:40px;place-items:center;border-radius:999px;background:#D6EEDE;color:#1A8641;font-size:22px;font-weight:700}.richard-bulk-success-description{margin:0;color:#6B7780;font-size:14px;font-weight:400;line-height:1.5}.richard-bulk-back-calendar{min-height:44px;border:1px solid #e8eaed;border-radius:10px;background:#FFFFFF;color:#1C2529;font-weight:700}.richard-bulk-modal button:focus-visible,.richard-dialog button:focus-visible{outline-color:rgba(26,134,65,.4)}@media (max-width:393px){.richard-bulk-modal,.richard-dialog{width:min(330px,calc(100vw - 32px));padding:16px}.richard-bulk-row{gap:3px;font-size:12px}.richard-bulk-row span:last-child{padding-inline:5px}}@media (max-width:340px){.richard-bulk-modal{width:calc(100vw - 16px);padding:12px}.richard-bulk-row{gap:2px;font-size:10.5px;letter-spacing:-.02em}.richard-bulk-row span:last-child{min-height:20px;padding-inline:4px}}@media (max-height:500px) and (orientation:landscape){.richard-bulk-modal,.richard-dialog{max-height:calc(100svh - 16px)}}.richard-shell{min-height:100svh;overflow:visible;background:#F6F7F8}.richard-topbar{display:grid;grid-template-columns:120px minmax(0,1fr) 120px;align-items:center;min-height:72px;margin:0 0 12px}.richard-title{grid-column:2;margin:0;font-size:20px}.richard-menu-button{display:grid;width:44px;height:44px;min-height:44px;place-content:center;grid-gap:4px;gap:4px;padding:0;border:0;border-radius:10px;background:transparent}.richard-menu-button>span{display:block;width:22px;height:2px;border-radius:999px;background:#253238}.richard-pending-capsule{justify-self:end;min-width:112px;min-height:44px;padding:6px 14px;border:1px solid #b8d8c3;border-radius:999px;background:#E5F2E9;color:#1A8641;font-size:13px;font-weight:700}.richard-pending-capsule-complete{display:inline-flex;align-items:center;justify-content:center}.richard-calendar-section{min-width:0}.richard-month-navigation{display:grid;grid-template-areas:"previous next month";grid-template-columns:70px 70px 100px;align-items:center;grid-gap:16px;gap:16px;min-height:52px;margin:0 0 12px}.richard-month-navigation>button{display:inline-grid;min-width:70px;min-height:44px;place-items:center;padding:4px 14px;border:1px solid #d8dde0;border-radius:999px;background:#FFFFFF;color:#253238;box-shadow:0 1px 2px rgba(16,24,40,.04);font-size:13px;font-weight:600}.richard-month-navigation>button:first-child{grid-area:previous}.richard-month-navigation>button:last-child{grid-area:next}.richard-month-navigation>strong{grid-area:month;color:#1C2529;font-size:18px;font-weight:700;text-align:center}.richard-month-arrow,.richard-pending-strip{display:none}.richard-calendar-frame{width:100%;min-width:0;padding:24px;border:1px solid #e1e4e6;border-radius:18px;background:#FFFFFF;box-shadow:0 8px 26px rgba(15,23,42,.05)}.richard-calendar-frame h2{display:none}.richard-calendar-frame [role=grid]{width:100%;max-width:100%}.richard-dialog{width:min(468px,calc(100vw - 32px))}.richard-bulk-modal{width:min(520px,calc(100vw - 32px));gap:14px}.richard-bulk-overlay[data-state=success] .richard-bulk-modal{width:min(450px,calc(100vw - 32px))}.richard-bulk-heading{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:baseline;gap:12px}.richard-bulk-heading h2{color:#1C2529;font-size:21px;font-weight:700;line-height:1.3}.richard-bulk-total{flex:0 0 auto;color:#6B7780;font-size:14px}.richard-bulk-list{display:block;border:1px solid #e8eaed;border-radius:13px;background:#FFFFFF}.richard-bulk-item{display:flex;align-items:center;min-height:49px;padding:0 12px;border-bottom:1px solid #e8eaed}.richard-bulk-row{display:grid;grid-template-columns:minmax(76px,1fr) minmax(96px,1.25fr) minmax(48px,.72fr) auto;align-items:center;width:100%;grid-gap:8px;gap:8px;color:#1C2529;font-size:14px}.richard-bulk-row,.richard-bulk-row span{min-width:0;white-space:nowrap}.richard-bulk-row span:last-child{justify-self:end;min-width:38px;min-height:24px;padding:3px 8px;text-align:center}.richard-bulk-actions{gap:10px}.richard-bulk-back-calendar,.richard-bulk-confirm-all{min-height:48px;border:1px solid #1a8641;border-radius:10px;background:#1A8641;color:#FFFFFF;font-weight:700}.richard-bulk-confirm-all:disabled{border-color:#9BC4AA;background:#9BC4AA;color:#147339;opacity:1}.richard-bulk-actions .richard-later-button{width:100%;min-height:44px;padding:4px 12px;border:0;background:transparent;color:#6B7780}.richard-bulk-error,.richard-bulk-submitting-status{margin:0;color:#6B7780;font-size:14px;line-height:1.4;text-align:center}.richard-bulk-error{color:#991B1B}.richard-bulk-success{gap:14px}.richard-bulk-success>[data-visual=success-check]{width:44px;height:44px;background:#E5F2E9;font-size:28px}.richard-bulk-success>p:not(.richard-bulk-success-description){color:#1C2529;font-size:26px}.richard-bulk-success-description{font-size:15px}.richard-bulk-back-calendar{width:100%}@media (max-width:640px){.richard-shell{padding-inline:max(18px,env(safe-area-inset-left))}.richard-topbar{grid-template-columns:44px minmax(0,1fr) 44px;min-height:64px;margin-bottom:4px}.richard-title{font-size:17px}.richard-pending-capsule{display:none}.richard-month-navigation{grid-template-areas:"previous month next";grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;min-height:52px;margin-bottom:6px}.richard-month-navigation>button{min-width:44px;width:44px;height:44px;padding:0;border-radius:12px}.richard-month-label{display:none}.richard-month-arrow{display:block;font-size:28px;font-weight:400;line-height:1}.richard-month-navigation>strong{font-size:17px}.richard-pending-strip{display:grid;width:100%;min-height:44px;place-items:center;margin:0 0 14px;padding:7px 12px;border:1px solid #b8d8c3;border-radius:12px;background:#E5F2E9;color:#1A8641;font-size:14px;font-weight:700}.richard-pending-strip-complete{border-color:#C9DDCF}.richard-calendar-frame{padding:14px;border-radius:16px}.richard-dialog-title{font-size:19px}.richard-dialog{width:min(330px,calc(100vw - 32px));padding:20px}.richard-dialog-summary{gap:6px}.richard-course-summary{font-size:15px}.richard-dialog-description{font-size:13px}.richard-dialog[data-variant=confirmation] .richard-dialog-description{margin-bottom:30px}.richard-bulk-modal{width:min(345px,calc(100vw - 32px));padding:16px}.richard-bulk-heading h2{font-size:19px}.richard-bulk-item{min-height:45px;padding:0 8px}.richard-bulk-row{grid-template-columns:minmax(68px,.9fr) minmax(88px,1.15fr) minmax(42px,.65fr) auto;gap:5px;font-size:12px;letter-spacing:-.01em}.richard-bulk-row span:last-child{min-width:34px;padding-inline:5px}.richard-bulk-back-calendar,.richard-bulk-confirm-all{min-height:46px}.richard-bulk-overlay[data-state=success] .richard-bulk-modal{width:min(330px,calc(100vw - 32px))}.richard-bulk-success>p:not(.richard-bulk-success-description){font-size:22px}}@media (max-width:340px){.richard-shell{padding-inline:8px}.richard-calendar-frame{padding:10px}.richard-bulk-modal{width:calc(100vw - 16px);padding:12px}.richard-bulk-row{grid-template-columns:66px 86px 42px 34px;gap:4px;font-size:10.5px}}@media (max-height:500px) and (orientation:landscape){.richard-shell{padding:8px}.richard-topbar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px}.richard-month-navigation{position:static;min-height:44px;margin-bottom:4px}.richard-bulk-modal,.richard-dialog{max-height:calc(100svh - 16px)}}