:root{--color-primary-900: #0f1f33;--color-primary-800: #162d4a;--color-primary-700: #1e3a5f;--color-primary-600: #2d5986;--color-primary-500: #3a6fa3;--color-primary-400: #4a90d9;--color-primary-300: #7ab0e8;--color-primary-200: #b3d4f4;--color-primary-100: #dce9f7;--color-primary-50: #eef4fb;--color-accent-700: #92400e;--color-accent-600: #b45309;--color-accent-500: #d97706;--color-accent-400: #f59e0b;--color-accent-300: #fbbf24;--color-accent-200: #fde68a;--color-accent-100: #fef3c7;--color-accent-50: #fffbeb;--color-neutral-900: #1c1917;--color-neutral-800: #292524;--color-neutral-700: #374151;--color-neutral-600: #4b5563;--color-neutral-500: #6b7280;--color-neutral-400: #9ca3af;--color-neutral-300: #d1d5db;--color-neutral-200: #e5e7eb;--color-neutral-150: #eef0f2;--color-neutral-100: #f3f4f6;--color-neutral-50: #f9fafb;--color-white: #ffffff;--color-success-700: #15803d;--color-success-600: #16a34a;--color-success-500: #22c55e;--color-success-100: #d1fae5;--color-success-50: #f0fdf4;--color-success-dark: #065f46;--color-warning-700: #92400e;--color-warning-600: #d97706;--color-warning-100: #fef3c7;--color-warning-50: #fffbeb;--color-error-700: #b91c1c;--color-error-600: #dc2626;--color-error-500: #ef4444;--color-error-400: #f87171;--color-error-100: #fee2e2;--color-error-50: #fef2f2;--color-info-700: #1e40af;--color-info-600: #2563eb;--color-info-100: #dbeafe;--color-info-50: #eff6ff;--font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Courier New", Courier, monospace;--text-display: 3rem;--text-h1: 1.75rem;--text-h2: 1.5rem;--text-h3: 1.25rem;--text-h4: 1.1rem;--text-body: .95rem;--text-sm: .875rem;--text-xs: .8rem;--text-xxs: .7rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .05);--shadow-primary: 0 4px 14px rgba(30, 58, 95, .25);--shadow-primary-lg: 0 8px 25px rgba(30, 58, 95, .3);--focus-ring: 0 0 0 3px rgba(74, 144, 217, .4);--focus-ring-error: 0 0 0 3px rgba(220, 38, 38, .25);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-sidebar: .25s cubic-bezier(.4, 0, .2, 1);--surface-page: #f1f3f8;--surface-card: var(--color-white);--surface-raised: var(--color-white);--surface-overlay: rgba(15, 31, 51, .6);--z-dropdown: 10;--z-sticky: 20;--z-overlay: 1000;--z-modal: 1010}*,*:before,*:after{box-sizing:border-box}:root{font-family:var(--font-family);line-height:var(--leading-normal);font-weight:var(--weight-regular);color:var(--color-neutral-700);background-color:var(--color-white);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes checkin-success{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 30% 20%,rgba(74,144,217,.15) 0%,transparent 50%),linear-gradient(135deg,var(--color-primary-900) 0%,var(--color-primary-700) 40%,var(--color-primary-600) 70%,var(--color-primary-400) 100%);padding:var(--space-4)}.auth-card{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-10);width:100%;max-width:420px;box-shadow:var(--shadow-2xl);border:1px solid rgba(255,255,255,.08)}.auth-card h1{margin:0;font-size:var(--text-h1);color:var(--color-primary-700);text-align:center;font-weight:var(--weight-bold);letter-spacing:-.02em}.auth-card h2{margin:.25rem 0 var(--space-6);font-size:var(--text-body);color:var(--color-neutral-500);text-align:center;font-weight:var(--weight-regular)}.auth-container .btn-primary,.auth-container .btn-secondary{width:100%}.form-group{margin-bottom:var(--space-4);flex:1}.form-group label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-neutral-700);letter-spacing:.01em}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.625rem .875rem;border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-lg);font-size:var(--text-body);font-family:var(--font-family);color:var(--color-neutral-800);background:var(--color-white);transition:border-color var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base);box-sizing:border-box;line-height:var(--leading-normal)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-neutral-400)}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--color-neutral-400)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary-400);box-shadow:var(--focus-ring);background:var(--color-white)}.form-group select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.25rem;cursor:pointer}.form-row{display:flex;gap:var(--space-3)}.checkbox-group{margin-top:var(--space-1)}.checkbox-label{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem;font-weight:400!important;color:var(--color-text-secondary);cursor:pointer;line-height:1.4}.checkbox-label input[type=checkbox]{width:16px;min-width:16px;height:16px;margin-top:2px;accent-color:var(--color-primary-600);cursor:pointer}.checkbox-label a{color:var(--color-primary-600);text-decoration:underline}.checkbox-label a:hover{color:var(--color-primary-700)}.btn-primary{width:auto;min-width:140px;padding:.75rem var(--space-4);background:linear-gradient(135deg,var(--color-primary-700) 0%,var(--color-primary-600) 100%);color:var(--color-white);border:none;border-radius:var(--radius-lg);font-size:var(--text-body);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base);margin-top:var(--space-2);box-shadow:var(--shadow-primary);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn-primary:hover{background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-500) 100%);box-shadow:var(--shadow-primary-lg);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-primary:focus-visible{outline:none;box-shadow:var(--shadow-primary),var(--focus-ring)}.btn-primary:disabled{background:var(--color-neutral-300);color:var(--color-neutral-500);cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{width:auto;min-width:140px;padding:.75rem var(--space-4);background:var(--color-white);color:var(--color-primary-700);border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-lg);font-size:var(--text-body);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base);margin-top:var(--space-2);box-shadow:var(--shadow-xs);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn-secondary:hover{background:var(--color-primary-50);border-color:var(--color-primary-300);box-shadow:var(--shadow-sm)}.btn-secondary:active{background:var(--color-primary-100)}.btn-secondary:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn-danger{width:auto;min-width:140px;padding:.75rem var(--space-4);background:linear-gradient(135deg,var(--color-error-600) 0%,var(--color-error-700) 100%);color:var(--color-white);border:none;border-radius:var(--radius-lg);font-size:var(--text-body);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base);margin-top:var(--space-2);box-shadow:0 4px 14px #dc262640;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn-danger:hover{background:linear-gradient(135deg,var(--color-error-700) 0%,#991b1b 100%);box-shadow:0 8px 25px #dc26264d;transform:translateY(-1px)}.btn-danger:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-danger:focus-visible{outline:none;box-shadow:0 4px 14px #dc262640,var(--focus-ring-error)}.btn-danger:disabled{background:var(--color-neutral-300);color:var(--color-neutral-500);cursor:not-allowed;box-shadow:none;transform:none}.error-message{background:var(--color-error-50);color:var(--color-error-600);padding:.75rem 1rem;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-medium);margin-bottom:var(--space-4);border:1px solid var(--color-error-100)}.success-message{padding:.75rem 1rem;background:var(--color-success-100);color:var(--color-success-dark);border-radius:var(--radius-lg);margin-bottom:var(--space-4);font-size:var(--text-body);font-weight:var(--weight-medium);border:1px solid rgba(22,163,74,.2)}.divider{display:flex;align-items:center;margin:var(--space-5) 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--color-neutral-200)}.divider span{padding:0 var(--space-3);color:var(--color-neutral-400);font-size:var(--text-xs)}.google-btn-wrapper{display:flex;justify-content:center}.google-signing-in{text-align:center;color:var(--color-neutral-500);font-size:var(--text-sm);padding:10px 0}.auth-links{margin-top:var(--space-5);display:flex;justify-content:space-between;font-size:var(--text-xs)}.auth-links a{color:var(--color-primary-400);text-decoration:none;font-weight:var(--weight-medium);transition:color var(--transition-fast)}.auth-links a:hover{color:var(--color-primary-600);text-decoration:underline}.verify-code-input{text-align:center;font-size:1.5rem;letter-spacing:.5rem;font-weight:var(--weight-semibold);padding:var(--space-3)}.resend-link{background:none;border:none;color:var(--color-primary-400);cursor:pointer;font-size:var(--text-body);font-family:var(--font-family);padding:0;text-decoration:none;transition:color var(--transition-fast)}.resend-link:hover{color:var(--color-primary-600);text-decoration:underline}.resend-success{background:var(--color-success-50);color:var(--color-success-700);padding:var(--space-3);border-radius:var(--radius-lg);margin-bottom:var(--space-4);text-align:center;font-size:var(--text-body);border:1px solid rgba(22,163,74,.15)}.dashboard{min-height:100vh;background:var(--surface-page)}.dashboard-body{display:flex;min-height:calc(100vh - 60px)}.dashboard-header{background:linear-gradient(90deg,var(--color-primary-800) 0%,var(--color-primary-700) 50%,var(--color-primary-600) 100%);color:var(--color-white);padding:.875rem var(--space-8);display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0f1f3326;position:relative;z-index:var(--z-sticky)}.demo-banner{background:linear-gradient(90deg,#f59e0b,#d97706);color:#fff;text-align:center;padding:.45rem var(--space-8);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.02em;box-shadow:0 1px 4px #0000001a}.dashboard-header h1{margin:0;font-size:var(--text-h3);font-weight:var(--weight-bold);letter-spacing:-.01em}.user-info{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm)}.role-badge{background:#ffffff26;padding:.3rem .875rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.03em;text-transform:uppercase;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.btn-logout{padding:.45rem 1.125rem;background:#ffffff14;color:var(--color-white);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-medium);font-family:var(--font-family);transition:all var(--transition-base)}.btn-logout:hover{background:#ffffff26;border-color:#fff6}.btn-logout:focus-visible{outline:none;box-shadow:0 0 0 3px #ffffff4d}.dashboard-content{flex:1;overflow-y:auto;padding:var(--space-8);scroll-behavior:smooth}.breadcrumbs{display:flex;align-items:center;gap:0;font-size:var(--text-sm);margin-bottom:var(--space-2)}.breadcrumb-item{display:inline-flex;align-items:center}.breadcrumb-sep{margin:0 .4rem;color:var(--color-neutral-400);font-weight:var(--weight-medium)}.breadcrumb-link{color:var(--color-primary-600);text-decoration:none;font-weight:var(--weight-medium)}.breadcrumb-link:hover{color:var(--color-primary-700);text-decoration:underline}.breadcrumb-current{color:var(--color-neutral-500);font-weight:var(--weight-normal)}.dashboard-content h2{margin:0 0 var(--space-4);color:var(--color-primary-700);font-weight:var(--weight-bold);letter-spacing:-.01em}.dashboard-content h3{color:var(--color-primary-600);margin:var(--space-6) 0 var(--space-3);font-size:1rem;text-transform:uppercase;letter-spacing:.05em;font-weight:var(--weight-semibold)}.sidebar{width:56px;background:linear-gradient(180deg,var(--color-primary-800) 0%,var(--color-primary-900) 100%);display:flex;flex-direction:column;flex-shrink:0;transition:width var(--transition-sidebar);overflow:hidden;border-right:1px solid rgba(255,255,255,.05)}.sidebar-expanded{width:220px}.sidebar-item{display:flex;align-items:center;gap:0;height:48px;padding:0;border:none;background:transparent;color:#fff9;cursor:pointer;font-size:var(--text-sm);font-family:var(--font-family);white-space:nowrap;transition:all var(--transition-base);width:100%;text-align:left;position:relative;margin:1px 0}.sidebar-item:hover{background:#ffffff14;color:var(--color-white)}.sidebar-item-active{background:#ffffff1f;color:var(--color-white);border-left:3px solid var(--color-primary-400)}.sidebar-item-active:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(74,144,217,.08) 0%,transparent 100%);pointer-events:none}.sidebar-item-disabled{opacity:.3;cursor:default}.sidebar-item-disabled:hover{background:transparent;color:#fff9}.sidebar-icon{display:flex;align-items:center;justify-content:center;width:56px;min-width:56px;height:100%}.sidebar-label{overflow:hidden;text-overflow:ellipsis;font-weight:var(--weight-medium)}.sidebar-toggle{border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--space-1)}.sidebar-item:focus-visible{box-shadow:inset 0 0 0 2px #fff6;outline:none}.sidebar-divider{height:1px;background:#ffffff1a;margin:var(--space-2) var(--space-3)}.sidebar-section-label{color:#ffffff59;font-size:10px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) 0 var(--space-1) 56px;white-space:nowrap;overflow:hidden}.tab-bar{display:flex;gap:0;border-bottom:2px solid var(--color-neutral-200);margin-bottom:var(--space-6)}.tab-btn{padding:.875rem var(--space-6);border:none;background:none;font-size:var(--text-body);font-weight:var(--weight-medium);font-family:var(--font-family);color:var(--color-neutral-500);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color var(--transition-base),border-color var(--transition-base),background var(--transition-base);border-radius:var(--radius-md) var(--radius-md) 0 0}.tab-btn:hover{color:var(--color-primary-700);background:var(--color-primary-50)}.tab-btn-active{color:var(--color-primary-700);border-bottom-color:var(--color-primary-400);font-weight:var(--weight-semibold)}.tab-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.tab-panel{min-height:200px}.tab-placeholder{color:var(--color-neutral-500);font-size:var(--text-body);padding:var(--space-8) 0}.welcome-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4);max-width:820px}.welcome-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);cursor:pointer;transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base);text-align:left;min-height:72px}.welcome-card:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--color-neutral-300)}.welcome-card:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.welcome-card:disabled{opacity:.45;cursor:not-allowed}.welcome-card:focus-visible{outline:none;box-shadow:var(--focus-ring)}.welcome-card-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;min-width:52px;border-radius:var(--radius-lg);color:var(--color-white)}.welcome-card-icon svg{width:26px;height:26px}.welcome-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.welcome-card-label{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-neutral-800);line-height:var(--leading-tight)}.welcome-card-desc{font-size:var(--text-sm);color:var(--color-neutral-500);line-height:var(--leading-tight)}.dashboard-info-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-5);margin-top:var(--space-6);max-width:820px}.dashboard-info-card{background:var(--color-white);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:var(--space-5)}.dashboard-info-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:600;color:var(--color-neutral-800);margin:0 0 var(--space-4)}.dashboard-info-title svg{color:var(--color-primary-600)}.dashboard-info-empty{color:var(--color-neutral-500);font-size:var(--text-sm);margin:0}.dashboard-info-link{display:inline-block;margin-top:var(--space-3);background:none;border:none;color:var(--color-primary-600);font-size:var(--text-sm);font-weight:500;cursor:pointer;padding:0}.dashboard-info-link:hover{text-decoration:underline}.dashboard-event-list{list-style:none;padding:0;margin:0}.dashboard-event-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0}.dashboard-event-item+.dashboard-event-item{border-top:1px solid var(--color-neutral-100)}.dashboard-event-date{display:flex;flex-direction:column;align-items:center;min-width:48px;flex-shrink:0}.dashboard-event-weekday{font-size:var(--text-xs);font-weight:600;color:var(--color-primary-600);text-transform:uppercase}.dashboard-event-day{font-size:var(--text-xs);color:var(--color-neutral-500)}.dashboard-event-details{display:flex;flex-direction:column;gap:2px;min-width:0}.dashboard-event-name{font-size:var(--text-sm);font-weight:500;color:var(--color-neutral-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-event-meta{font-size:var(--text-xs);color:var(--color-neutral-500)}.dashboard-church-section{margin-bottom:var(--space-3)}.dashboard-church-section:last-child{margin-bottom:0}.dashboard-church-label{font-size:var(--text-xs);font-weight:600;color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-1)}.dashboard-church-value{font-size:var(--text-sm);color:var(--color-neutral-700);margin:0}.dashboard-service-time{display:flex;justify-content:space-between;font-size:var(--text-sm);padding:2px 0}.dashboard-service-day{font-weight:500;color:var(--color-neutral-700)}.dashboard-service-times{color:var(--color-neutral-500)}.dashboard-church-link{font-size:var(--text-sm);color:var(--color-primary-600);text-decoration:none}.dashboard-church-link:hover{text-decoration:underline}@media(max-width:600px){.welcome-grid,.dashboard-info-row{grid-template-columns:1fr}.tab-btn{padding:.6rem var(--space-4);font-size:var(--text-xs)}}.tile-row{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:stretch;margin-bottom:var(--space-6)}.tile{background:var(--surface-card);border-radius:var(--radius-xl);padding:var(--space-5);min-width:150px;box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base);display:flex;flex-direction:column;gap:var(--space-1);border:1px solid var(--color-neutral-200)}.tile:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:var(--color-neutral-300)}.tile-add{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);min-height:72px;max-width:none;font-weight:var(--weight-medium);font-size:var(--text-body);box-shadow:var(--shadow-sm);color:var(--color-neutral-800);cursor:pointer;transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base)}.tile-add:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--color-neutral-300);background:var(--surface-card)}.tile-add:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.tile-add-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;min-width:52px;border-radius:var(--radius-lg);background:#059669;color:var(--color-white)}.tile-add-icon svg{width:26px;height:26px}.tile-add-text{display:flex;flex-direction:column;gap:2px;min-width:0}.tile-add-label{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-neutral-800);line-height:var(--leading-tight)}.tile-add-desc{font-size:var(--text-sm);color:var(--color-neutral-500);line-height:var(--leading-tight)}.tile-add-compact{min-height:auto;padding:.4rem 1rem;gap:.5rem;font-size:var(--text-sm)}.tile-add-icon-sm{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;border-radius:var(--radius-md);background:#059669;color:var(--color-white)}.tile-add-icon-sm svg{width:16px;height:16px}.tile-family{border-left:4px solid var(--color-primary-700);min-width:220px}.tile-person{min-width:140px;align-items:center;position:relative;cursor:pointer}.form-tile-wrapper-expanded{width:100%}.form-inline-edit{margin-top:var(--space-2);margin-bottom:var(--space-2)}.form-inline-edit-card{max-width:360px;padding:var(--space-5);background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}@media(max-width:700px){.form-inline-edit-card{max-width:100%}}.tile-missing-badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-error-500);color:var(--color-white);font-size:var(--text-xxs);font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;z-index:1;animation:badge-pulse 2s ease-in-out infinite}.tile-unverified{background:var(--color-error-50);border-color:var(--color-error-100)}.tile-family.tile-unverified{border-left-color:var(--color-error-400)}.btn-tile-verify{margin-top:var(--space-2);padding:.3rem .875rem;background:linear-gradient(135deg,var(--color-success-600) 0%,var(--color-success-700) 100%);color:var(--color-white);border:none;border-radius:var(--radius-md);font-size:var(--text-xxs);font-weight:var(--weight-medium);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base);align-self:center;box-shadow:0 2px 6px #16a34a40}.btn-tile-verify:hover{background:linear-gradient(135deg,var(--color-success-700) 0%,#166534 100%);box-shadow:0 4px 10px #16a34a4d;transform:translateY(-1px)}.tile-title{font-weight:var(--weight-semibold);color:var(--color-primary-700);font-size:1.05rem}.tile-subtitle{color:var(--color-neutral-500);font-size:var(--text-xs)}.tile-subtitle-editable{cursor:pointer;display:inline-flex;align-items:center;gap:3px}.tile-subtitle-editable:hover{color:var(--color-primary-600)}.tile-subtitle-chevron{opacity:.5;flex-shrink:0}.tile-subtitle-editable:hover .tile-subtitle-chevron{opacity:1;color:var(--color-primary-600)}.tile-relationship-select{font-size:var(--text-xs);color:var(--color-neutral-700);border:1px solid var(--color-primary-300);border-radius:var(--radius-sm);padding:2px 4px;background:#fff;cursor:pointer;text-align:center}.person-avatar{border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.edit-person-avatar{display:flex;justify-content:center;margin-bottom:var(--space-5)}.avatar-upload-wrapper{display:flex;flex-direction:column;align-items:center;cursor:pointer;gap:.35rem}.avatar-upload-wrapper:hover .person-avatar{opacity:.8}.avatar-upload-label{font-size:var(--text-xxs);color:var(--color-primary-400);font-weight:var(--weight-medium)}.edit-form-card{background:var(--surface-card);border-radius:var(--radius-xl);padding:var(--space-8);max-width:560px;box-shadow:var(--shadow-md);border:1px solid var(--color-neutral-200)}.edit-form-card textarea{width:100%;padding:.625rem .875rem;border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-lg);font-size:var(--text-body);font-family:var(--font-family);resize:vertical;box-sizing:border-box;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.edit-form-card textarea:focus{outline:none;border-color:var(--color-primary-400);box-shadow:var(--focus-ring)}.radio-group{display:flex;gap:var(--space-6);padding-top:var(--space-1)}.radio-label{display:flex;align-items:center;gap:.4rem;font-size:var(--text-body);color:var(--color-neutral-700);cursor:pointer}.radio-label input[type=radio]{width:auto;accent-color:var(--color-primary-700);cursor:pointer}.checkbox-group label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-body);color:var(--color-neutral-700);cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;accent-color:var(--color-primary-700)}.tile-dashboard{min-width:160px;min-height:100px;align-items:center;justify-content:center;text-align:center;border-left:4px solid var(--color-primary-400)}.tile-count{font-size:2.5rem;font-weight:var(--weight-bold);color:var(--color-primary-700);line-height:1}.verify-progress{color:var(--color-neutral-500);font-size:var(--text-body);margin-bottom:var(--space-4)}.verify-family-card{background:var(--surface-card);border-radius:var(--radius-xl);padding:var(--space-6) var(--space-8);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);border:1px solid var(--color-neutral-200)}.verify-family-card h3{color:var(--color-primary-700);margin:0 0 var(--space-2);font-size:var(--text-h3);text-transform:none;letter-spacing:normal}.verify-family-card h4{color:var(--color-primary-600);margin:var(--space-4) 0 var(--space-2);font-size:var(--text-body);text-transform:uppercase;letter-spacing:.05em}.verify-address{color:var(--color-neutral-500);font-size:var(--text-body);margin:0}.verify-allergies{color:var(--color-error-600);font-weight:var(--weight-medium)}.verify-actions{display:flex;gap:var(--space-4);max-width:560px}.verify-actions .btn-primary,.verify-actions .btn-secondary{margin-top:0}.btn-verify{background:linear-gradient(135deg,var(--color-success-600) 0%,var(--color-success-700) 100%);box-shadow:0 4px 14px #16a34a40}.btn-verify:hover{background:linear-gradient(135deg,var(--color-success-700) 0%,#166534 100%);box-shadow:0 8px 25px #16a34a4d}.verify-done{text-align:center;padding:var(--space-8)}.verify-done p{font-size:var(--text-h4);color:var(--color-neutral-700);margin-bottom:var(--space-6)}.verify-done .btn-primary{display:inline-block}.tile-nav{min-width:130px;min-height:70px;align-items:center;justify-content:center;text-align:center;border-left:4px solid var(--color-primary-600)}.btn-back{padding:.4rem 1rem;background:transparent;color:var(--color-primary-400);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-xs);font-family:var(--font-family);margin-bottom:var(--space-4);transition:all var(--transition-base)}.btn-back:hover{background:var(--color-neutral-100);border-color:var(--color-primary-300);color:var(--color-primary-600)}.btn-back:focus-visible{outline:none;box-shadow:var(--focus-ring)}.admin-list-layout{display:flex;gap:var(--space-8);align-items:flex-start}.admin-list-panel{min-width:590px;max-width:680px}.admin-list-search{width:100%;padding:.625rem .875rem;border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-lg);font-size:var(--text-body);font-family:var(--font-family);margin-bottom:var(--space-3);box-sizing:border-box;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.admin-list-search:hover{border-color:var(--color-neutral-400)}.admin-list-search:focus{outline:none;border-color:var(--color-primary-400);box-shadow:var(--focus-ring)}.admin-list{display:flex;flex-direction:column}.admin-list-item{padding:var(--space-3) var(--space-4);background:var(--surface-card);border:1px solid var(--color-neutral-200);border-bottom:none;cursor:pointer;font-size:var(--text-body);color:var(--color-neutral-700);display:flex;justify-content:space-between;align-items:center;transition:background var(--transition-fast),border-color var(--transition-fast)}.admin-list-item:first-child{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.admin-list-item:last-child{border-bottom:1px solid var(--color-neutral-200);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.admin-list-item:only-child{border-radius:var(--radius-lg)}.admin-list-item:hover{background:var(--color-primary-50)}.admin-list-item-selected{background:var(--color-primary-100);font-weight:var(--weight-semibold);color:var(--color-primary-700);border-left:3px solid var(--color-primary-700)}.admin-list-item-inactive{opacity:.6}.inactive-badge{font-size:var(--text-xxs);background:var(--color-neutral-100);color:var(--color-neutral-400);padding:.15rem .5rem;border-radius:var(--radius-lg);font-weight:var(--weight-regular)}.admin-list-empty{color:var(--color-neutral-400);font-size:var(--text-body);padding:var(--space-4)}.admin-edit-panel{flex:1;max-width:480px}.admin-edit-panel .edit-form-card h3{margin:0 0 var(--space-4);color:var(--color-primary-700);font-size:var(--text-h4)}.series-section{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-neutral-200)}.series-heading{margin:0 0 var(--space-2);font-size:var(--text-body);color:var(--color-primary-700);font-weight:var(--weight-semibold)}.series-info-box{background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5)}.series-info-row{display:flex;justify-content:space-between;padding:var(--space-1) 0;font-size:var(--text-sm);color:var(--color-neutral-700)}.series-info-label{font-weight:var(--weight-medium);color:var(--color-neutral-500)}.series-apply-prompt{margin-top:var(--space-2)}.series-apply-text{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-neutral-700);margin:0 0 var(--space-2)}.recurrence-badge{font-size:.65rem;background:var(--color-primary-100);color:var(--color-primary-700);padding:.1rem .4rem;border-radius:var(--radius-lg);font-weight:var(--weight-medium);margin-left:var(--space-2)}.member-section{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-neutral-200)}.member-section:first-child{margin-top:0;padding-top:0;border-top:none}.member-section h4{margin:0 0 var(--space-4);color:var(--color-primary-700);font-size:1rem;font-weight:var(--weight-semibold)}.member-list{display:flex;flex-direction:column;gap:var(--space-3)}.member-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);transition:background var(--transition-base)}.member-item:hover{background:var(--color-neutral-100)}.member-info{flex:1;min-width:0}.member-name{font-weight:var(--weight-medium);color:var(--color-primary-700);margin-bottom:.2rem}.member-date{font-size:var(--text-sm);color:var(--color-neutral-500)}.btn-remove{width:28px;height:28px;border:none;background:var(--color-error-100);color:var(--color-error-600);border-radius:var(--radius-md);font-size:1.25rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0}.btn-remove:hover{background:var(--color-error-400);color:var(--color-white);transform:scale(1.05)}.member-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.member-grid-item{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:4px 8px;background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);font-size:var(--text-sm);min-width:0}.member-grid-item:hover{background:var(--color-neutral-100)}.member-grid-name{font-weight:var(--weight-medium);color:var(--color-primary-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.member-grid-actions{display:flex;gap:2px;flex-shrink:0}.btn-leader-toggle{width:22px;height:22px;border:none;background:var(--color-neutral-200);color:var(--color-neutral-400);border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0}.btn-leader-toggle:hover,.btn-leader-toggle.btn-leader-active{background:var(--color-accent-200);color:var(--color-accent-600)}.btn-remove-sm{width:22px;height:22px;border:none;background:var(--color-error-100);color:var(--color-error-600);border-radius:var(--radius-sm);font-size:.9rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0}.btn-remove-sm:hover{background:var(--color-error-400);color:var(--color-white)}@media(max-width:1100px){.member-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.member-grid{grid-template-columns:repeat(2,1fr)}}.recipient-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:300px;overflow-y:auto}.recipient-grid-item{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:4px 8px;background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);font-size:var(--text-sm);min-width:0}.recipient-grid-item:hover{background:var(--color-neutral-100)}.recipient-grid-name{font-weight:var(--weight-medium);color:var(--color-primary-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}@media(max-width:1100px){.recipient-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.recipient-grid{grid-template-columns:repeat(2,1fr)}}.member-search-container{position:relative}.member-search{width:100%;padding:var(--space-3);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);font-size:var(--text-body);font-family:var(--font-family);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.member-search:focus{outline:none;border-color:var(--color-primary-400);box-shadow:var(--focus-ring)}.search-results{position:absolute;top:calc(100% + var(--space-1));left:0;right:0;background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:300px;overflow-y:auto;z-index:var(--z-dropdown)}.search-result-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--color-neutral-100)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--color-neutral-50)}.search-result-info{flex:1;min-width:0}.search-result-name{font-weight:var(--weight-medium);color:var(--color-primary-700);margin-bottom:.2rem}.search-result-email{font-size:var(--text-sm);color:var(--color-neutral-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-neutral-400);font-style:italic}.registration-section{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-neutral-200)}.registration-section:first-child{margin-top:0;padding-top:0;border-top:none}.registration-section h4{margin:0 0 var(--space-4);color:var(--color-primary-700);font-size:1rem;font-weight:var(--weight-semibold)}.registration-list{display:flex;flex-direction:column;gap:var(--space-3)}.registration-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);transition:background var(--transition-base)}.registration-item:hover{background:var(--color-neutral-100)}.registration-info{flex:1;min-width:0}.registration-name{font-weight:var(--weight-medium);color:var(--color-primary-700);margin-bottom:.2rem}.registration-date{font-size:var(--text-sm);color:var(--color-neutral-500)}.btn-unregister{width:28px;height:28px;border:none;background:var(--color-error-100);color:var(--color-error-600);border-radius:var(--radius-md);font-size:1.25rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0}.btn-unregister:hover{background:var(--color-error-400);color:var(--color-white);transform:scale(1.05)}.bulk-register-section{display:flex;flex-direction:column;gap:var(--space-2)}.group-select-row{display:flex;align-items:center;gap:var(--space-2)}.group-select-row select{flex:1;min-width:0}.group-select-row button{flex-shrink:0;white-space:nowrap}.kiosk-welcome{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 30% 20%,rgba(74,144,217,.15) 0%,transparent 50%),linear-gradient(135deg,var(--color-primary-900) 0%,var(--color-primary-700) 40%,var(--color-primary-600) 70%,var(--color-primary-400) 100%);cursor:pointer;user-select:none;-webkit-user-select:none;position:relative}.kiosk-welcome h1{color:var(--color-white);font-size:var(--text-display);margin:0 0 var(--space-2);text-align:center;font-weight:var(--weight-bold);letter-spacing:-.02em}.kiosk-welcome>p{color:#fffc;font-size:var(--text-h2);margin:0}.kiosk-modal{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-8);width:340px;box-shadow:var(--shadow-2xl);cursor:default;display:flex;flex-direction:column;align-items:center;animation:modal-slide-up .25s cubic-bezier(.16,1,.3,1)}.kiosk-modal h2{margin:0 0 var(--space-4);color:var(--color-primary-700);font-size:var(--text-h3)}.kiosk-phone-display{font-size:1.75rem;font-weight:var(--weight-semibold);color:var(--color-primary-700);letter-spacing:.05em;min-height:2.5rem;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4);font-family:var(--font-mono)}.kiosk-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);width:100%}.kiosk-key{padding:var(--space-5);font-size:1.5rem;font-weight:var(--weight-semibold);background:var(--color-neutral-100);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast);color:var(--color-primary-700);user-select:none;-webkit-user-select:none}.kiosk-key:hover{background:var(--color-neutral-200);border-color:var(--color-neutral-300)}.kiosk-key:active{transform:scale(.95);background:var(--color-neutral-300);box-shadow:var(--shadow-inner)}.kiosk-key:disabled{opacity:.4;cursor:not-allowed;transform:none}.kiosk-key-action{font-size:var(--text-h3);background:var(--color-error-100);color:var(--color-error-600);border-color:var(--color-error-100)}.kiosk-key-action:hover{background:var(--color-error-400);color:var(--color-white);border-color:var(--color-error-400)}.kiosk-key-enter{font-size:1rem;background:linear-gradient(135deg,var(--color-primary-700) 0%,var(--color-primary-600) 100%);color:var(--color-white);border-color:var(--color-primary-700);box-shadow:var(--shadow-primary)}.kiosk-key-enter:hover{background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-500) 100%);box-shadow:var(--shadow-primary-lg)}.kiosk-key-enter:disabled{background:var(--color-neutral-300);border-color:var(--color-neutral-300);box-shadow:none}.kiosk-error{background:var(--color-error-50);color:var(--color-error-600);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-error-100);margin-bottom:var(--space-4);text-align:center;cursor:pointer;width:100%;box-sizing:border-box;font-weight:var(--weight-medium)}.kiosk-error-dismiss{display:block;font-size:var(--text-xxs);color:var(--color-neutral-400);margin-top:var(--space-1)}.kiosk-checkin{min-height:100vh;background:var(--surface-page)}.kiosk-checkin-header{background:linear-gradient(90deg,var(--color-primary-800) 0%,var(--color-primary-700) 50%,var(--color-primary-600) 100%);color:var(--color-white);padding:var(--space-4) var(--space-8);display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0f1f3326}.kiosk-checkin-header h1{margin:0;font-size:var(--text-h3)}.kiosk-event-name{font-size:var(--text-body);opacity:.9}.kiosk-checkin-content{padding:var(--space-8)}.kiosk-checkin-content h3{color:var(--color-primary-600);margin:var(--space-6) 0 var(--space-3);font-size:1rem;text-transform:uppercase;letter-spacing:.05em}.kiosk-tile-readonly{cursor:default}.kiosk-tile-readonly:hover{box-shadow:var(--shadow-sm);transform:none}.kiosk-tile-child{cursor:pointer;border:2px solid transparent;transition:border-color var(--transition-base),background var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.kiosk-tile-child:hover{border-color:var(--color-primary-400)}.kiosk-tile-selected{border-color:var(--color-primary-600)!important;background:var(--color-primary-50)!important;box-shadow:0 0 0 2px var(--color-primary-400)}.kiosk-tile-checked-in{background:var(--color-success-100)!important;border-color:var(--color-success-600)!important;cursor:default;animation:checkin-success .4s ease}.kiosk-tile-checked-in:hover{transform:none;box-shadow:var(--shadow-sm)}.kiosk-allergies{color:var(--color-error-600);font-size:var(--text-xxs);font-weight:var(--weight-medium)}.kiosk-checking{color:var(--color-neutral-500);font-size:var(--text-xs);font-style:italic}.kiosk-security-code{margin-top:var(--space-2);display:flex;flex-direction:column;align-items:center;gap:.15rem}.kiosk-code-label{font-size:var(--text-xxs);color:var(--color-success-dark);text-transform:uppercase;letter-spacing:.05em}.kiosk-code-value{font-size:1.5rem;font-weight:var(--weight-bold);color:var(--color-success-dark);letter-spacing:.2em;font-family:var(--font-mono)}.kiosk-no-event{text-align:center;padding:var(--space-12)}.kiosk-no-event p{font-size:1.2rem;color:var(--color-neutral-500);margin-bottom:var(--space-6)}.kiosk-actions{margin-top:var(--space-8);display:flex;justify-content:center;gap:var(--space-4)}.kiosk-actions .btn-primary,.kiosk-actions .btn-secondary{min-width:200px;padding:var(--space-4) var(--space-8);font-size:var(--text-h4)}.kiosk-actions .btn-secondary{background:var(--color-neutral-100);color:var(--color-neutral-700);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.kiosk-actions .btn-secondary:hover{background:var(--color-neutral-200)}.kiosk-person-rows{display:flex;flex-direction:column;gap:var(--space-3)}.kiosk-person-row{display:flex;align-items:stretch;gap:var(--space-3)}.kiosk-person-info{display:flex;align-items:center;gap:var(--space-3);min-width:240px;max-width:300px;padding:var(--space-3) var(--space-4);background:var(--color-white);border:2px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.kiosk-person-info-selected{border-color:var(--color-primary-400);background:var(--color-primary-50)}.kiosk-person-info-checked-in{background:var(--color-success-100);border-color:var(--color-success-600)}.kiosk-person-details{display:flex;flex-direction:column;min-width:0;flex:1}.kiosk-person-name{font-weight:var(--weight-semibold);color:var(--color-primary-700);font-size:var(--text-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kiosk-person-meta{color:var(--color-neutral-500);font-size:var(--text-xs)}.kiosk-person-allergies{color:var(--color-error-600);font-size:var(--text-xxs);font-weight:var(--weight-medium)}.kiosk-person-code{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:auto;padding-left:var(--space-2)}.kiosk-person-code .kiosk-code-value{font-size:1.1rem;letter-spacing:.15em}.kiosk-person-checked-label{font-size:var(--text-xxs);color:var(--color-success-dark);font-weight:var(--weight-semibold);text-transform:uppercase;white-space:nowrap}.kiosk-event-tiles{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:stretch}.kiosk-event-tile{display:flex;flex-direction:column;justify-content:center;padding:var(--space-2) var(--space-4);background:var(--color-white);border:2px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);min-width:160px}.kiosk-event-tile:hover{border-color:var(--color-primary-400);box-shadow:var(--shadow-md)}.kiosk-event-tile-selected{border-color:var(--color-primary-600)!important;background:var(--color-primary-50)!important;box-shadow:0 0 0 1px var(--color-primary-600)}.kiosk-event-tile-checked-in{background:var(--color-success-100)!important;border-color:var(--color-success-600)!important;cursor:default}.kiosk-event-tile-checked-in:hover{box-shadow:var(--shadow-sm)}.kiosk-event-tile-none{background:var(--color-neutral-50);border-color:var(--color-neutral-200);cursor:default;opacity:.6}.kiosk-event-tile-none:hover{border-color:var(--color-neutral-200);box-shadow:none}.kiosk-event-tile-time{font-size:var(--text-xs);color:var(--color-neutral-500);font-weight:var(--weight-medium)}.kiosk-event-tile-name{font-weight:var(--weight-semibold);color:var(--color-primary-700);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kiosk-event-tile-group{font-size:var(--text-xxs);color:var(--color-neutral-500)}.admin-kiosk-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);padding:var(--space-3) 0;gap:var(--space-4)}.admin-kiosk-instruction{font-size:var(--text-body);color:var(--color-neutral-600);font-weight:var(--weight-medium)}.admin-kiosk-actions-container{position:relative;flex-shrink:0}.admin-kiosk-actions-btn{display:inline-flex;align-items:center;gap:var(--space-2)}.admin-kiosk-dropdown{position:absolute;top:calc(100% + var(--space-1));right:0;min-width:240px;background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);overflow:hidden;animation:dropdown-fade-in .15s ease}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.admin-kiosk-dropdown button{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;padding:var(--space-3) var(--space-4);border:none;background:transparent;font-size:var(--text-sm);color:var(--color-neutral-700);cursor:pointer;transition:background var(--transition-fast)}.admin-kiosk-dropdown button:hover:not(:disabled){background:var(--color-neutral-50)}.admin-kiosk-dropdown button:disabled{color:var(--color-neutral-400);cursor:not-allowed}.admin-kiosk-dropdown button+button{border-top:1px solid var(--color-neutral-100)}.admin-kiosk-coming-soon{font-size:var(--text-xs);color:var(--color-neutral-400);margin-left:var(--space-1)}.authorized-overlay{position:fixed;inset:0;background:var(--surface-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);animation:overlay-fade-in .2s ease}.authorized-modal{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-6);width:90%;max-width:500px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-2xl);animation:modal-slide-up .25s cubic-bezier(.16,1,.3,1)}.authorized-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.authorized-header h3{margin:0}.authorized-close{background:none;border:none;cursor:pointer;color:var(--color-neutral-500);padding:var(--space-1);border-radius:var(--radius-md)}.authorized-close:hover{background:var(--color-neutral-100)}.authorized-desc{font-size:var(--text-sm);color:var(--color-neutral-500);margin:0 0 var(--space-4) 0}.authorized-list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.authorized-person{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}.authorized-person-name{flex:1;font-weight:var(--weight-medium)}.authorized-search{position:relative}.authorized-search-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm);box-sizing:border-box}.authorized-search-input:focus{outline:none;border-color:var(--color-primary-400);box-shadow:var(--ring-primary)}.authorized-search-results{position:absolute;top:calc(100% + var(--space-1));left:0;right:0;background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:200px;overflow-y:auto;z-index:var(--z-dropdown)}.authorized-search-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--text-sm);transition:background var(--transition-fast)}.authorized-search-item:hover{background:var(--color-neutral-50)}.kiosk-authorized-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.kiosk-authorized-person{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium)}.church-group-area{padding-left:var(--space-8)!important}.church-group-leaf{padding-left:3.5rem!important}.tree-toggle{display:inline-block;width:1.25rem;text-align:center;cursor:pointer;font-size:var(--text-xxs);color:var(--color-neutral-500);-webkit-user-select:none;user-select:none;margin-right:var(--space-1);transition:color var(--transition-fast)}.tree-toggle:hover{color:var(--color-primary-700)}.level-badge{font-size:.65rem;padding:.1rem .4rem;border-radius:var(--radius-md);font-weight:var(--weight-semibold);text-transform:uppercase;margin-left:var(--space-2)}.level-badge-dept{background:var(--color-info-100);color:var(--color-primary-700)}.level-badge-area{background:var(--color-accent-100);color:var(--color-accent-700)}.level-badge-group{background:var(--color-success-100);color:var(--color-success-dark)}.small-group-filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap}.small-group-grid{display:grid;grid-template-columns:repeat(3,400px);gap:20px;justify-content:center;max-width:1240px;margin:0 auto}@media(max-width:1100px){.small-group-grid{grid-template-columns:repeat(2,400px)}}@media(max-width:700px){.small-group-grid{grid-template-columns:400px}}.small-group-card{background:var(--surface-card);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base);min-width:330px;cursor:pointer;border:1px solid var(--color-neutral-200)}.small-group-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:var(--color-neutral-300)}.small-group-photo{height:220px;background:var(--color-neutral-200);overflow:hidden}.small-group-photo img{width:100%;height:100%;object-fit:cover}.small-group-photo-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-neutral-300) 0%,var(--color-neutral-200) 100%)}.small-group-card-body{padding:var(--space-4) var(--space-5) var(--space-5)}.small-group-name{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--color-primary-700);margin-bottom:var(--space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.small-group-desc{font-size:var(--text-xs);color:var(--color-neutral-500);margin-bottom:var(--space-2);line-height:1.4;max-height:38px;overflow:hidden}.small-group-fields{display:grid;grid-template-columns:1fr 1fr;gap:.35rem var(--space-4);margin-bottom:var(--space-2);font-size:var(--text-xs)}.small-group-field-header{font-weight:var(--weight-bold);color:var(--color-neutral-700);text-transform:uppercase;font-size:var(--text-xxs);letter-spacing:.02em}.small-group-field-value{color:var(--color-neutral-500);margin-bottom:.35rem}.small-group-badge-open{display:inline-block;font-size:var(--text-xxs);padding:.15rem .5rem;border-radius:var(--radius-full);font-weight:var(--weight-semibold);background:var(--color-success-100);color:var(--color-success-dark);margin-bottom:var(--space-2)}.small-group-badge-invite{display:inline-block;font-size:var(--text-xxs);padding:.15rem .5rem;border-radius:var(--radius-full);font-weight:var(--weight-semibold);background:var(--color-accent-100);color:var(--color-accent-700);margin-bottom:var(--space-2)}.small-group-leaders{font-size:var(--text-xs);color:var(--color-neutral-600);margin-bottom:var(--space-3)}.small-group-name-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.small-group-member-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.small-group-new-badge{background:#fef3c7;color:#92400e;font-size:var(--text-xs);font-weight:600;padding:.15rem .5rem;border-radius:var(--radius-sm)}.small-group-member-count{font-size:var(--text-xs);color:var(--color-neutral-500)}.btn-message-leader{background:none;border:none;color:var(--color-primary-400);cursor:pointer;padding:.15rem;border-radius:var(--radius-sm);flex-shrink:0;transition:color var(--transition-base),background var(--transition-base)}.btn-message-leader:hover{color:var(--color-primary-700);background:var(--color-primary-100)}.msg-leader-overlay{position:fixed;inset:0;background:var(--surface-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);animation:overlay-fade-in .2s ease}.msg-leader-modal{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-6);width:90%;max-width:480px;box-shadow:var(--shadow-2xl);animation:modal-slide-up .25s cubic-bezier(.16,1,.3,1)}.msg-leader-modal textarea{width:100%;box-sizing:border-box}.msg-leader-modal h3{margin:0 0 var(--space-4);color:var(--color-primary-700);font-size:1.2rem}.msg-leader-recipient{font-size:var(--text-body);color:var(--color-neutral-700);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-neutral-100);border-radius:var(--radius-md)}.msg-leader-label{font-weight:var(--weight-semibold);margin-right:.4rem}.msg-char-count{float:right;font-size:var(--text-xxs);font-weight:var(--weight-regular);color:var(--color-neutral-400)}.msg-leader-buttons{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}.small-group-actions{margin-top:var(--space-3);padding:0 30px;text-align:center}.btn-join-request{padding:var(--space-2) var(--space-4);background:var(--color-white);color:var(--color-primary-700);border:2px solid var(--color-primary-700);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base);width:100%}.btn-join-request:hover:not(:disabled){background:var(--color-primary-700);color:var(--color-white);box-shadow:var(--shadow-primary)}.btn-join-request:disabled{border-color:var(--color-neutral-400);color:var(--color-neutral-400);cursor:not-allowed}.sg-detail-overlay{position:fixed;inset:0;background:var(--surface-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);animation:overlay-fade-in .2s ease}.sg-detail-modal{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-6);width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-2xl);position:relative;animation:modal-slide-up .25s cubic-bezier(.16,1,.3,1)}.sg-detail-close{position:absolute;top:.875rem;right:.875rem;background:var(--color-neutral-100);border:1px solid var(--color-neutral-200);font-size:1.25rem;font-weight:var(--weight-bold);color:var(--color-neutral-600);cursor:pointer;padding:0;line-height:1;width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.sg-detail-close:hover{background:var(--color-neutral-200);color:var(--color-primary-700)}.sg-detail-close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sg-detail-modal .small-group-name{font-size:var(--text-h3);margin-bottom:var(--space-2)}.sg-detail-modal .small-group-fields{font-size:var(--text-xs)}.sg-detail-desc-section{margin-top:var(--space-3)}.sg-detail-desc-section .small-group-field-header{margin-bottom:var(--space-1)}.sg-detail-desc-section .small-group-desc{max-height:none;overflow:visible}.sg-edit-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-4)}.sg-edit-fields-grid .form-group{margin-bottom:var(--space-3)}.btn-approve{padding:.3rem var(--space-3);background:linear-gradient(135deg,#059669,#047857);color:var(--color-white);border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-family);cursor:pointer;margin-left:var(--space-1);transition:all var(--transition-fast);box-shadow:0 2px 4px #05966933}.btn-approve:hover{background:linear-gradient(135deg,#047857,#065f46);box-shadow:0 3px 8px #0596694d}.btn-deny{padding:.3rem var(--space-3);background:linear-gradient(135deg,var(--color-error-600),var(--color-error-700));color:var(--color-white);border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-family);cursor:pointer;margin-left:var(--space-1);transition:all var(--transition-fast);box-shadow:0 2px 4px #dc262633}.btn-deny:hover{background:linear-gradient(135deg,var(--color-error-700),#991b1b);box-shadow:0 3px 8px #dc26264d}.people-table{width:100%;max-width:700px;border-collapse:separate;border-spacing:0;margin-top:var(--space-4);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--color-neutral-200)}.people-table th{text-align:left;padding:var(--space-3) var(--space-4);background:var(--color-neutral-50);border-bottom:2px solid var(--color-neutral-200);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.05em}.people-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-neutral-200);font-size:var(--text-body);color:var(--color-neutral-700)}.people-table tbody tr:nth-child(2n){background:var(--color-neutral-50)}.people-row-clickable{cursor:pointer}.people-row-clickable:hover{background:var(--color-primary-50)!important}.checkin-table{width:100%;max-width:1150px;border-collapse:separate;border-spacing:0;margin-top:var(--space-4);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--color-neutral-200)}.checkin-table th{text-align:left;padding:var(--space-3) var(--space-4);background:var(--color-neutral-50);border-bottom:2px solid var(--color-neutral-200);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.05em}.checkin-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-neutral-200);font-size:var(--text-body);color:var(--color-neutral-700)}.checkin-table tbody tr:nth-child(2n){background:var(--color-neutral-50)}.checkin-table tbody tr:hover{background:var(--color-primary-50)!important}.checkin-code{font-family:var(--font-mono);font-weight:var(--weight-semibold);font-size:var(--text-body);background:#e8f4e8;color:#2d6a2e;padding:.15rem .5rem;border-radius:var(--radius-sm);letter-spacing:.1em}.checkin-you-badge{font-size:var(--text-xxs);font-weight:var(--weight-semibold);color:var(--color-primary-400);background:var(--color-primary-50);padding:.1rem .4rem;border-radius:3px;margin-left:.4rem;text-transform:uppercase;letter-spacing:.04em}@media(max-width:600px){.checkin-table th,.checkin-table td{padding:.4rem var(--space-2);font-size:var(--text-xs)}}.checkin-admin-scroll{overflow:auto;max-height:calc(100vh - 200px)}.checkin-admin-scroll thead th{position:sticky;top:0;z-index:1}.checkin-table-admin{max-width:100%}.checkin-table-admin th,.checkin-table-admin td{white-space:nowrap;padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.my-groups-list{display:flex;flex-direction:column;gap:var(--space-3);max-width:700px;margin-top:var(--space-4)}.my-group-row{display:flex;gap:var(--space-4);padding:var(--space-3);background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);align-items:flex-start;transition:box-shadow var(--transition-base)}.my-group-row:hover{box-shadow:var(--shadow-sm)}.my-group-thumb{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}.my-group-info{flex:1;min-width:0}.my-group-name{font-weight:var(--weight-semibold);font-size:1rem;color:var(--color-primary-700);display:flex;align-items:center;gap:var(--space-2)}.my-group-details{font-size:var(--text-xs);color:var(--color-neutral-500);margin-top:.15rem}.my-group-sep:before{content:"•";margin:0 .4rem}.my-group-leaders{font-size:.82rem;color:var(--color-neutral-700);margin-top:var(--space-1)}.my-group-badges{display:flex;gap:.4rem;margin-top:.35rem;flex-wrap:wrap}.my-group-badge{font-size:.72rem;padding:.1rem .5rem;border-radius:var(--radius-xl);font-weight:var(--weight-medium)}.badge-open{background:var(--color-success-100);color:var(--color-success-dark)}.badge-invite{background:var(--color-accent-100);color:var(--color-accent-700)}.badge-interact{background:var(--color-info-100);color:var(--color-info-700)}.badge-announce{background:#f3e8ff;color:#6b21a8}.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-3)}.cal-header-left{display:flex;align-items:center;gap:var(--space-4)}.cal-header-left h2{margin:0;color:var(--color-primary-700);font-size:var(--text-h2);white-space:nowrap}.cal-today-btn{padding:.35rem .9rem;background:var(--surface-card);color:var(--color-primary-700);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base)}.cal-today-btn:hover{background:var(--color-neutral-100);border-color:var(--color-primary-300)}.cal-today-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.cal-header-right{display:flex;align-items:center;gap:var(--space-2)}.cal-month-picker{padding:.35rem var(--space-2);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-family);color:var(--color-neutral-700);cursor:pointer;background:var(--surface-card);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.cal-month-picker:focus{outline:none;border-color:var(--color-primary-400);box-shadow:var(--focus-ring)}.cal-nav-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface-card);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-neutral-700);cursor:pointer;transition:all var(--transition-base)}.cal-nav-btn:hover{background:var(--color-primary-700);color:var(--color-white);border-color:var(--color-primary-700);box-shadow:var(--shadow-primary)}.cal-nav-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-card);box-shadow:var(--shadow-md)}.cal-day-header{padding:.6rem var(--space-2);text-align:center;font-weight:var(--weight-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-500);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200)}.cal-day-cell{min-height:110px;border-right:1px solid var(--color-neutral-150);border-bottom:1px solid var(--color-neutral-150);padding:.35rem var(--space-2);display:flex;flex-direction:column;transition:background var(--transition-fast);overflow:hidden;min-width:0}.cal-day-cell:nth-child(7n+14){border-right:none}.cal-day-other{background:var(--color-neutral-50)}.cal-day-other .cal-day-number{color:var(--color-neutral-300)}.cal-day-other .cal-event-chip{opacity:.5}.cal-day-today{background:var(--color-info-50)}.cal-day-number{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-neutral-700);margin-bottom:.2rem}.cal-today-badge{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary-700) 0%,var(--color-primary-600) 100%);color:var(--color-white);border-radius:var(--radius-full);width:28px;height:28px;font-size:var(--text-xs);font-weight:var(--weight-bold);box-shadow:0 2px 6px #1e3a5f4d}.cal-day-events{display:flex;flex-direction:column;gap:2px;overflow:hidden;flex:1;min-width:0}.cal-event-chip{padding:0;font-size:var(--text-xxs);display:flex;gap:.3rem;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.4;min-width:0;max-width:100%;pointer-events:auto;cursor:pointer}.cal-event-group{color:var(--color-primary-600)}.cal-event-registered{color:var(--color-success-dark)}.cal-event-overflow{color:var(--color-neutral-500);font-style:italic;font-size:.65rem;justify-content:center;background:var(--color-neutral-100);cursor:pointer}.cal-event-overflow:hover{background:var(--color-neutral-200);color:var(--color-neutral-700)}.cal-event-time{font-weight:var(--weight-semibold);flex-shrink:0}.cal-event-name{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.cal-loading{text-align:center;color:var(--color-neutral-500);padding:var(--space-8);font-style:italic;background:linear-gradient(90deg,var(--color-neutral-100) 25%,var(--color-neutral-200) 50%,var(--color-neutral-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-lg)}.cal-event-overlay{position:fixed;inset:0;background:var(--surface-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);animation:overlay-fade-in .2s ease}.cal-event-modal{background:var(--surface-card);border-radius:var(--radius-2xl);padding:1.75rem;width:90%;max-width:420px;box-shadow:var(--shadow-2xl);position:relative;animation:modal-slide-up .25s cubic-bezier(.16,1,.3,1)}.cal-event-close{position:absolute;top:.875rem;right:.875rem;background:var(--color-neutral-100);border:1px solid var(--color-neutral-200);font-size:1.25rem;font-weight:var(--weight-bold);color:var(--color-neutral-600);cursor:pointer;padding:0;line-height:1;width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.cal-event-close:hover{background:var(--color-neutral-200);color:var(--color-primary-700)}.cal-event-close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.cal-event-modal h3{margin:0 0 var(--space-5);color:var(--color-primary-700);font-size:1.2rem;padding-right:var(--space-8)}.cal-event-detail{display:flex;flex-direction:column;gap:.6rem}.cal-event-detail-row{display:flex;gap:var(--space-3);font-size:var(--text-body);color:var(--color-neutral-700)}.cal-event-detail-label{font-weight:var(--weight-semibold);color:var(--color-neutral-500);min-width:70px}.cal-search{position:relative;max-width:360px;margin-bottom:var(--space-3)}.cal-search-input{width:100%;padding:.5rem 2rem .5rem .75rem;border:1.5px solid var(--color-neutral-300);border-radius:var(--radius-lg);font-size:var(--text-body);font-family:var(--font-family);box-sizing:border-box;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.cal-search-input:focus{outline:none;border-color:var(--color-primary-400);box-shadow:var(--focus-ring)}.cal-search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.2rem;color:var(--color-neutral-400);cursor:pointer;padding:0 .25rem;line-height:1}.cal-search-clear:hover{color:var(--color-neutral-600)}.cal-day-cell{cursor:pointer}.cal-day-cell:hover{background:var(--color-primary-50)}.cal-day-today:hover{background:#dde8f8}.cal-day-selected{outline:2px solid var(--color-primary-500);outline-offset:-2px;background:var(--color-primary-50)!important}.cal-inline-detail{margin-bottom:var(--space-4);background:var(--surface-card);border:1px solid var(--color-primary-200);border-left:4px solid var(--color-primary-500);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-md);animation:modal-slide-up .2s ease-out}.cal-inline-detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-3)}.cal-inline-detail-header h3{margin:0;font-size:1.15rem;color:var(--color-primary-700);font-weight:var(--weight-semibold);padding-right:var(--space-4)}.cal-inline-detail-body{display:flex;flex-direction:column;gap:var(--space-2)}.cal-inline-detail-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-neutral-700)}.cal-inline-detail-icon{display:flex;align-items:center;color:var(--color-neutral-400);flex-shrink:0}.cal-inline-detail-desc{margin-top:var(--space-1);padding:var(--space-3);background:var(--color-neutral-50);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-neutral-600);white-space:pre-wrap;line-height:1.5}.cal-inline-detail-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap}@media(max-width:700px){.cal-inline-detail-actions{flex-direction:column;align-items:stretch}.cal-inline-detail-actions .btn-primary{margin-left:0!important;margin-top:var(--space-2)}}.cal-hover-popup{position:fixed;z-index:1000;width:300px;background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;pointer-events:none;animation:cal-hover-in .15s ease-out}@keyframes cal-hover-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.cal-hover-popup-img{width:100%;height:140px;object-fit:cover;display:block}.cal-hover-popup-body{padding:var(--space-3)}.cal-hover-popup-date{font-size:var(--text-xs);color:var(--color-primary-600);font-weight:var(--weight-semibold);margin-bottom:var(--space-1)}.cal-hover-popup-name{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-neutral-900);margin-bottom:var(--space-1)}.cal-hover-popup-desc{font-size:var(--text-xs);color:var(--color-neutral-600);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cal-hover-popup-meta{font-size:var(--text-xs);color:var(--color-neutral-500);margin-top:var(--space-1)}.cal-series-icon{display:inline-flex;align-items:center;color:var(--color-neutral-400);margin-left:2px;flex-shrink:0;cursor:pointer;vertical-align:middle}.cal-series-icon:hover{color:var(--color-primary-500)}.cal-series-dates{margin-top:var(--space-2)}.cal-series-dates-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-primary-600);cursor:pointer;font-weight:var(--weight-semibold);padding:var(--space-2) 0;border:none;background:none;width:100%;text-align:left}.cal-series-dates-toggle:hover{color:var(--color-primary-700)}.cal-series-dates-toggle svg{transition:transform .2s}.cal-series-dates-toggle.expanded svg{transform:rotate(90deg)}.cal-series-dates-list{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto}.cal-series-date-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--color-neutral-700);border-radius:var(--radius-sm);cursor:pointer}.cal-series-date-item:hover{background:var(--color-primary-50)}.cal-series-date-item.current{background:var(--color-primary-50);font-weight:var(--weight-semibold);color:var(--color-primary-700)}.cal-series-date-item.past{color:var(--color-neutral-400)}.cal-inline-detail-img{width:100%;max-height:180px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:var(--space-2)}.cal-day-detail{margin-top:var(--space-4);background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-md);animation:modal-slide-up .2s ease-out}.cal-day-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.cal-day-detail-header h3{margin:0;font-size:var(--text-h4);color:var(--color-primary-700);font-weight:var(--weight-semibold)}.cal-day-detail-close{background:none;border:none;font-size:1.5rem;color:var(--color-neutral-400);cursor:pointer;padding:0 .25rem;line-height:1;border-radius:var(--radius-md);transition:color var(--transition-fast)}.cal-day-detail-close:hover{color:var(--color-neutral-700)}.cal-day-detail-empty{color:var(--color-neutral-500);font-style:italic;margin:0}.cal-day-detail-grid{display:flex;flex-direction:column}.cal-day-detail-grid-header{display:grid;grid-template-columns:90px 1fr 1fr 1fr;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-neutral-200)}.cal-day-detail-grid-row{display:grid;grid-template-columns:90px 1fr 1fr 1fr;gap:var(--space-3);padding:var(--space-2) var(--space-3);cursor:pointer;border-bottom:1px solid var(--color-neutral-100);transition:background var(--transition-fast);align-items:center}.cal-day-detail-grid-row:last-child{border-bottom:none}.cal-day-detail-grid-row:hover{background:var(--color-primary-50)}.cal-day-detail-grid-time{font-weight:var(--weight-semibold);color:var(--color-primary-600);font-size:var(--text-sm)}.cal-day-detail-grid-name{font-weight:var(--weight-medium);color:var(--color-neutral-800);font-size:var(--text-sm)}.cal-day-detail-grid-loc{color:var(--color-neutral-500);font-size:var(--text-sm)}.cal-day-detail-grid-group{color:var(--color-primary-600);font-size:var(--text-sm)}@media(max-width:700px){.cal-header{flex-direction:column;align-items:flex-start}.cal-day-cell{min-height:70px;padding:var(--space-1)}.cal-day-header{font-size:var(--text-xxs);padding:.4rem var(--space-1)}.cal-event-time{display:none}.cal-event-chip{font-size:.6rem}.cal-day-detail-grid-header{display:none}.cal-day-detail-grid-row{grid-template-columns:1fr;gap:2px;padding:var(--space-3) var(--space-3);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);margin-bottom:var(--space-2)}}@media(max-width:480px){.cal-day-cell{min-height:55px}.cal-day-events{display:flex;flex-direction:row;flex-wrap:wrap;gap:3px;justify-content:center;padding-top:2px}.cal-event-chip{width:7px;height:7px;border-radius:50%;padding:0;font-size:0;min-height:0;overflow:hidden}.cal-event-chip.cal-event-group{background:var(--color-primary-500)}.cal-event-chip.cal-event-registered{background:var(--color-success)}.cal-event-chip.cal-event-overflow{background:var(--color-neutral-400);font-size:0}.cal-event-chip .cal-event-time,.cal-event-chip .cal-event-name{display:none}.cal-view-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}}.cal-view-tabs{display:flex;gap:2px;margin-bottom:var(--space-3);background:var(--color-neutral-100);border-radius:var(--radius-lg);padding:3px;width:fit-content}.cal-view-tab{padding:.4rem 1rem;background:transparent;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);font-family:var(--font-family);color:var(--color-neutral-600);cursor:pointer;transition:all var(--transition-fast)}.cal-view-tab:hover{color:var(--color-primary-700);background:var(--color-neutral-50)}.cal-view-tab-active{background:var(--surface-card);color:var(--color-primary-700);font-weight:var(--weight-semibold);box-shadow:var(--shadow-sm)}.cal-period-label{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-primary-700);white-space:nowrap}.cal-week-container{background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.cal-week-header{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:1px solid var(--color-neutral-200);background:var(--color-neutral-50)}.cal-week-time-gutter{width:60px;flex-shrink:0}.cal-week-header .cal-week-time-gutter{border-right:1px solid var(--color-neutral-200)}.cal-week-day-col-header{padding:.5rem .25rem;text-align:center;cursor:pointer;transition:background var(--transition-fast);border-right:1px solid var(--color-neutral-150);display:flex;flex-direction:column;align-items:center;gap:2px}.cal-week-day-col-header:last-child{border-right:none}.cal-week-day-col-header:hover{background:var(--color-primary-50)}.cal-week-day-today{background:var(--color-info-50)}.cal-week-day-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-500)}.cal-week-day-num{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-neutral-700)}.cal-week-body{display:grid;grid-template-columns:60px repeat(7,1fr);max-height:600px;overflow-y:auto}.cal-week-hour-label{height:48px;display:flex;align-items:flex-start;justify-content:flex-end;padding:0 .4rem;font-size:var(--text-xxs);color:var(--color-neutral-400);border-right:1px solid var(--color-neutral-200);transform:translateY(-6px);-webkit-user-select:none;user-select:none}.cal-week-day-col{position:relative;border-right:1px solid var(--color-neutral-150)}.cal-week-day-col:last-child{border-right:none}.cal-week-col-today{background:#dbeafe40}.cal-week-hour-cell{height:48px;border-bottom:1px solid var(--color-neutral-100);cursor:pointer}.cal-week-hour-cell:hover{background:var(--color-primary-50)}.cal-week-event{position:absolute;left:2px;right:2px;background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-500) 100%);color:var(--color-white);border-radius:var(--radius-sm);padding:2px 4px;font-size:var(--text-xxs);overflow:hidden;cursor:pointer;z-index:1;display:flex;flex-direction:column;gap:0;line-height:1.3;box-shadow:0 1px 3px #00000026;transition:box-shadow var(--transition-fast)}.cal-week-event:hover{box-shadow:0 2px 8px #00000040;z-index:2}.cal-week-event-time{font-weight:var(--weight-semibold);font-size:.6rem;opacity:.9}.cal-week-event-name{font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-day-view-container{background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.cal-day-view-body{display:grid;grid-template-columns:60px 1fr;max-height:600px;overflow-y:auto}.cal-day-view-col{position:relative}.cal-day-event-loc{font-size:.55rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-agenda-container{display:flex;flex-direction:column;gap:var(--space-1)}.cal-agenda-day{background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.cal-agenda-date-header{display:flex;align-items:baseline;gap:var(--space-3);padding:.6rem var(--space-4);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200)}.cal-agenda-date-today{background:var(--color-info-50)}.cal-agenda-date-today .cal-agenda-weekday{color:var(--color-primary-700)}.cal-agenda-weekday{font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--color-neutral-700)}.cal-agenda-date{font-size:var(--text-sm);color:var(--color-neutral-500)}.cal-agenda-events{display:flex;flex-direction:column}.cal-agenda-event{display:flex;gap:var(--space-3);padding:.6rem var(--space-4);cursor:pointer;border-bottom:1px solid var(--color-neutral-100);transition:background var(--transition-fast);align-items:flex-start}.cal-agenda-event:last-child{border-bottom:none}.cal-agenda-event:hover{background:var(--color-primary-50)}.cal-agenda-event-time{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-primary-600);min-width:80px;flex-shrink:0;padding-top:1px}.cal-agenda-event-body{flex:1;min-width:0}.cal-agenda-event-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-neutral-800)}.cal-agenda-event-desc{font-size:var(--text-xs);color:var(--color-neutral-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px;margin-top:1px}.cal-agenda-event-meta{font-size:var(--text-xs);color:var(--color-neutral-500);display:flex;gap:var(--space-2);align-items:center;margin-top:1px}.cal-agenda-sep{color:var(--color-neutral-300)}.cal-rooms-container{display:flex;flex-direction:column;gap:var(--space-3)}.cal-rooms-toggle{display:flex;gap:0;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);overflow:hidden;width:fit-content}.cal-rooms-toggle-btn{padding:.35rem 1rem;font-size:var(--text-xs);font-weight:var(--weight-semibold);background:var(--surface-card);border:none;cursor:pointer;color:var(--color-neutral-600);transition:background var(--transition-fast),color var(--transition-fast)}.cal-rooms-toggle-btn:not(:last-child){border-right:1px solid var(--color-neutral-200)}.cal-rooms-toggle-btn.active{background:var(--color-primary-600);color:var(--color-white)}.cal-rooms-day{background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow-x:auto;box-shadow:var(--shadow-md)}.cal-rooms-day-header{display:flex;border-bottom:2px solid var(--color-neutral-200);background:var(--color-neutral-50);position:sticky;top:0;z-index:2}.cal-rooms-label-col{width:140px;min-width:140px;flex-shrink:0;padding:.5rem .6rem;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-neutral-700);border-right:1px solid var(--color-neutral-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}.cal-rooms-time-row{flex:1;display:flex;position:relative;min-width:0}.cal-rooms-hour-header{flex:1;min-width:50px;text-align:center;font-size:var(--text-xxs);color:var(--color-neutral-400);padding:.4rem 0;border-right:1px solid var(--color-neutral-150);-webkit-user-select:none;user-select:none}.cal-rooms-hour-header:last-child{border-right:none}.cal-rooms-day-row{display:flex;border-bottom:1px solid var(--color-neutral-100);min-height:40px}.cal-rooms-day-row:last-child{border-bottom:none}.cal-rooms-hour-cell{flex:1;min-width:50px;border-right:1px solid var(--color-neutral-100)}.cal-rooms-hour-cell:last-child{border-right:none}.cal-rooms-event{position:absolute;top:3px;bottom:3px;background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-500) 100%);color:var(--color-white);border-radius:var(--radius-sm);padding:2px 6px;font-size:var(--text-xxs);overflow:hidden;cursor:pointer;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:0;line-height:1.3;box-shadow:0 1px 3px #00000026;transition:box-shadow var(--transition-fast)}.cal-rooms-event:hover{box-shadow:0 2px 8px #00000040;z-index:2}.cal-rooms-event-name{font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-rooms-event-time{font-weight:var(--weight-semibold);font-size:.6rem;opacity:.9}.cal-rooms-week{background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.cal-rooms-week-header{display:grid;grid-template-columns:140px repeat(7,1fr);border-bottom:2px solid var(--color-neutral-200);background:var(--color-neutral-50)}.cal-rooms-week-day-header{padding:.5rem .25rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;border-right:1px solid var(--color-neutral-150)}.cal-rooms-week-day-header:last-child{border-right:none}.cal-rooms-week-day-today{background:var(--color-info-50)}.cal-rooms-week-row{display:grid;grid-template-columns:140px repeat(7,1fr);border-bottom:1px solid var(--color-neutral-100);min-height:42px}.cal-rooms-week-row:last-child{border-bottom:none}.cal-rooms-week-cell{padding:2px;border-right:1px solid var(--color-neutral-100);display:flex;flex-direction:column;gap:2px;min-height:38px}.cal-rooms-week-cell:last-child{border-right:none}.cal-rooms-week-cell-today{background:#dbeafe33}.cal-rooms-week-event{background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-500) 100%);color:var(--color-white);border-radius:var(--radius-sm);padding:2px 4px;font-size:var(--text-xxs);cursor:pointer;display:flex;gap:3px;align-items:center;line-height:1.3;box-shadow:0 1px 2px #0000001a;overflow:hidden}.cal-rooms-week-event:hover{box-shadow:0 2px 6px #0003}.cal-subscribe-btn{background:none;border:1px solid var(--border-color, #d1d5db);border-radius:6px;padding:.3rem .75rem;font-size:var(--text-xs);color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s}.cal-subscribe-btn:hover{background:var(--primary-50, #eff6ff);color:var(--primary-600, #2563eb);border-color:var(--primary-300, #93c5fd)}.cal-add-cal-btn{display:inline-block;padding:.2rem .6rem;font-size:var(--text-xs);border-radius:4px;border:1px solid var(--border-color, #d1d5db);background:var(--neutral-50, #f9fafb);color:var(--primary-600, #2563eb);cursor:pointer;text-decoration:none;transition:all .15s}.cal-add-cal-btn:hover{background:var(--primary-50, #eff6ff);border-color:var(--primary-300, #93c5fd)}@media(max-width:700px){.cal-view-tabs{width:100%}.cal-view-tab{flex:1;text-align:center;padding:.4rem .5rem;font-size:var(--text-xs)}.cal-week-body{max-height:450px}.cal-week-day-name{font-size:.6rem}.cal-week-day-num{font-size:var(--text-xs)}.cal-week-event-name{font-size:.55rem}.cal-agenda-event-time{min-width:65px}.cal-rooms-label-col{width:100px;min-width:100px;font-size:.65rem}.cal-rooms-week-header,.cal-rooms-week-row{grid-template-columns:100px repeat(7,1fr)}.cal-rooms-hour-header{min-width:35px;font-size:.55rem}.cal-rooms-hour-cell{min-width:35px}}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sidebar-item:focus-visible{box-shadow:inset 0 0 0 2px #fff6}.btn-logout:focus-visible{box-shadow:0 0 0 3px #ffffff4d}.ckcal-day-active{background-color:#dcfce7!important}.ckcal-day-active:hover{background-color:#bbf7d0!important}.ckcal-count-badge{font-size:var(--text-xxs, .65rem);color:var(--color-success-700, #15803d);font-weight:var(--font-semibold, 600);text-align:center;margin-top:.25rem}.ckcal-day-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.ckcal-back-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .9rem;font-size:var(--text-sm, .875rem);font-weight:var(--font-medium, 500);color:var(--color-primary-700, #1d4ed8);background:var(--color-primary-50, #eff6ff);border:1px solid var(--color-primary-200, #bfdbfe);border-radius:var(--radius-md, .375rem);cursor:pointer;transition:background var(--transition-fast, .15s),color var(--transition-fast, .15s)}.ckcal-back-btn:hover{background:var(--color-primary-100, #dbeafe);color:var(--color-primary-800, #1e40af)}.ckcal-day-title{margin:0;font-size:var(--text-lg, 1.125rem);font-weight:var(--font-semibold, 600);color:var(--color-neutral-800, #1e293b)}.ckcal-day-count{font-size:var(--text-sm, .875rem);color:var(--color-neutral-500, #64748b);margin-left:auto}@media(max-width:700px){.ckcal-day-header{flex-direction:column;align-items:flex-start;gap:.5rem}.ckcal-day-count{margin-left:0}}.visitor-date-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.visitor-date-input{padding:6px 10px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm)}.visitor-date-label{color:var(--color-neutral-500);font-size:var(--text-sm)}.visitor-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden}.visitor-table th{background:var(--color-neutral-50);color:var(--color-neutral-600);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;text-align:left;border-bottom:1px solid var(--color-neutral-200)}.visitor-table td{padding:10px 12px;border-bottom:1px solid var(--color-neutral-100);vertical-align:middle;font-size:var(--text-sm)}.visitor-table tbody tr:hover{background:var(--color-neutral-50)}.visitor-table tbody tr.visitor-assigned{background:#f0fdf4;opacity:.6;transition:opacity .8s ease}.visitor-child-cell{display:flex;align-items:center;gap:10px}.visitor-child-name{font-weight:600;color:var(--color-neutral-800)}.visitor-child-age{font-size:var(--text-xs);color:var(--color-neutral-500)}.visitor-allergies{font-size:var(--text-xs);color:var(--color-error);font-weight:500}.visitor-family-name{font-weight:600;color:var(--color-neutral-700)}.visitor-parent-name{font-size:var(--text-xs);color:var(--color-neutral-600)}.visitor-phone{font-size:var(--text-xs);color:var(--color-neutral-500)}.visitor-group-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:var(--text-xs);font-weight:500;background:#fef3c7;color:#92400e}.visitor-checkin-time{font-size:var(--text-xs);color:var(--color-neutral-500)}.visitor-dropdown{padding:5px 8px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm);min-width:150px}.visitor-assign-btn{min-width:80px!important;padding:5px 12px!important;font-size:var(--text-sm)!important}.visitor-done-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:var(--text-xs);font-weight:600;background:#dcfce7;color:#166534}@media(max-width:800px){.visitor-table th:nth-child(4),.visitor-table td:nth-child(4){display:none}}.forms-title-row{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.forms-add-btn{flex-direction:row;padding:.5rem 1rem .5rem .5rem;width:auto;min-width:auto;cursor:pointer}.forms-add-btn .welcome-card-icon{width:40px;height:40px;min-width:40px}.forms-add-btn .welcome-card-icon svg{width:24px;height:24px}.forms-list{border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden}.forms-list .admin-list-item{border-bottom:1px solid var(--color-neutral-100)}.forms-list .admin-list-item:last-child{border-bottom:none}.forms-list .admin-list-item{display:flex;align-items:center}.form-copy-link{position:relative;display:flex;align-items:center;padding:4px;border-radius:var(--radius-sm);color:var(--color-neutral-400);cursor:pointer;transition:color .15s,background .15s;flex-shrink:0}.form-copy-link:hover{color:var(--color-primary-600);background:var(--color-primary-50)}.form-copied-toast{position:absolute;right:100%;top:50%;transform:translateY(-50%);margin-right:6px;white-space:nowrap;font-size:var(--text-xs);color:#fff;background:var(--color-neutral-700);padding:3px 8px;border-radius:var(--radius-sm);pointer-events:none;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.forms-edit-card{background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:1.5rem;min-height:calc(100vh - 180px)}.custom-field-row{display:flex;gap:.5rem;align-items:flex-start;margin-bottom:.4rem;padding:.4rem .6rem;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);background:var(--color-neutral-50)}.custom-field-options{display:flex;flex-direction:column;gap:.25rem}.custom-field-option-row{display:flex;gap:.5rem;align-items:center}.btn-remove-field{color:var(--color-error-600);background:none;border:none;cursor:pointer;font-size:1rem;padding:.25rem;line-height:1}.btn-remove-field:hover{color:var(--color-error-700)}.btn-field-move{background:none;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);cursor:pointer;font-size:.65rem;padding:.15rem .35rem;color:var(--color-neutral-500);line-height:1}.btn-field-move:hover:not(:disabled){color:var(--color-primary-600);border-color:var(--color-primary-400)}.btn-field-move:disabled{opacity:.3;cursor:default}.rel-required-grid{display:grid;grid-template-columns:140px repeat(5,auto);gap:.25rem 1rem;align-items:center}.rel-required-header{font-weight:var(--weight-semibold);font-size:var(--text-xs);color:var(--color-neutral-500);text-transform:uppercase}.form-event-list{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1.5rem}.form-event-row{padding:.75rem 1rem;border:2px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;display:flex;gap:1rem;align-items:center;transition:border-color .15s,background .15s}.form-event-row:hover{border-color:var(--color-primary-300);background:var(--color-primary-50)}.form-event-selected{border-color:#4a90d9;background:#e8f0fe}.form-event-date{color:var(--color-neutral-500);font-size:var(--text-sm);min-width:180px}.form-event-name{font-weight:var(--weight-medium)}.form-event-location{color:var(--color-neutral-400);font-size:var(--text-sm)}.custom-fields-section{margin-top:1.5rem;padding:1rem;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);background:var(--color-neutral-50)}.custom-fields-person{margin-bottom:1.5rem}.custom-fields-person:last-child{margin-bottom:0}.custom-fields-person-name{font-weight:var(--weight-semibold);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.slider-field{max-width:400px}.slider-input{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--color-neutral-200);outline:none;cursor:pointer}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary-600);border:2px solid white;box-shadow:var(--shadow-sm);cursor:pointer;transition:background .15s}.slider-input::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary-600);border:2px solid white;box-shadow:var(--shadow-sm);cursor:pointer}.slider-input:hover::-webkit-slider-thumb{background:var(--color-primary-700)}.slider-input:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus-ring)}.slider-labels{display:flex;justify-content:space-between;margin-top:.35rem;padding:0 2px}.slider-label{font-size:var(--text-xs);color:var(--color-neutral-500);text-align:center;flex:1;transition:color .15s,font-weight .15s}.slider-label:first-child{text-align:left}.slider-label:last-child{text-align:right}.slider-label-active{color:var(--color-primary-700);font-weight:var(--weight-semibold)}.number-stepper{display:flex;align-items:center;gap:0}.number-stepper button{width:32px;height:32px;border:1px solid var(--color-neutral-300);background:var(--color-neutral-50);color:var(--color-primary-700);font-size:1.1rem;font-weight:var(--weight-bold);cursor:pointer;transition:background .15s,color .15s;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}.number-stepper button:first-child{border-radius:var(--radius-md) 0 0 var(--radius-md)}.number-stepper button:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0}.number-stepper button:hover{background:var(--color-primary-50);color:var(--color-primary-800)}.number-stepper button:active{background:var(--color-primary-100)}.number-stepper-value{width:44px;height:32px;text-align:center;font-size:1rem;font-weight:var(--weight-semibold);border:1px solid var(--color-neutral-300);border-left:none;border-right:none;background:#fff;color:var(--color-neutral-800);-moz-appearance:textfield;padding:0}.number-stepper-value::-webkit-outer-spin-button,.number-stepper-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-grid{display:grid;grid-template-columns:1fr auto;gap:.4rem 1rem;align-items:center;max-width:340px;margin-bottom:var(--space-3)}.number-grid-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-neutral-700)}.attendance-roster{display:flex;flex-direction:column;gap:2px;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);overflow:hidden}.attendance-roster-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;background:#fff;cursor:pointer;transition:background var(--transition-fast)}.attendance-roster-item:hover{background:var(--color-neutral-50)}.attendance-roster-item.attendance-present{background:#ecfdf5}.attendance-roster-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-success);cursor:pointer}.attendance-roster-name{flex:1;font-size:.9rem;font-weight:var(--weight-medium)}.attendance-roster-stat{font-size:.75rem;color:var(--color-neutral-500);font-weight:var(--weight-medium);min-width:40px;text-align:right}.attendance-history{display:flex;flex-direction:column;gap:2px;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);overflow:hidden;max-height:240px;overflow-y:auto}.attendance-history-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#fff;transition:background var(--transition-fast)}.attendance-history-item:hover{background:var(--color-neutral-50)}.attendance-history-date{font-size:.85rem;font-weight:var(--weight-medium);min-width:100px}.attendance-history-count{font-size:.8rem;color:var(--color-neutral-600);flex:1}.attendance-history-notes{color:var(--color-primary-500);font-weight:var(--weight-bold)}.event-attendance-roster{display:flex;flex-direction:column;gap:2px;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);overflow:hidden;max-height:400px;overflow-y:auto}.event-attendance-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;background:#fff;cursor:pointer;transition:background var(--transition-fast)}.event-attendance-item:hover{background:var(--color-neutral-50)}.event-attendance-item.attendance-present{background:#ecfdf5}.event-attendance-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-success);cursor:pointer}.created-family-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);max-width:560px}.created-family-summary h4{margin:0 0 var(--space-1) 0;color:#166534;font-size:var(--text-body)}.created-family-summary p{margin:0;color:var(--color-neutral-600);font-size:var(--text-sm)}.added-children-list{margin-bottom:var(--space-5);max-width:560px}.added-children-list h4{margin:0 0 var(--space-2) 0;font-size:var(--text-body);color:var(--color-primary-700)}.added-child-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-neutral-200);font-size:var(--text-body)}.added-child-name{font-weight:var(--weight-medium)}.added-child-meta{color:var(--color-neutral-500);font-size:var(--text-sm)}.pco-card{background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.pco-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.pco-table th{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--color-neutral-200);font-weight:var(--weight-semibold);color:var(--color-neutral-600);white-space:nowrap}.pco-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-neutral-100)}.pco-table tbody tr:hover{background:var(--color-neutral-50)}.pco-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--color-neutral-300);border-top-color:var(--color-primary-600);border-radius:50%;animation:pco-spin .6s linear infinite;vertical-align:middle;margin-right:6px}@keyframes pco-spin{to{transform:rotate(360deg)}}.filter-banner{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;margin-bottom:12px;background:var(--color-info-50, #eff6ff);border:1px solid var(--color-info-200, #bfdbfe);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-primary-700)}.filter-banner-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--color-neutral-500);padding:0 4px;line-height:1}.filter-banner-close:hover{color:var(--color-neutral-800)}.quality-row-clickable:hover{background:var(--color-primary-50, #eff6ff)!important}.sp-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.sp-controls select,.sp-controls input[type=date]{padding:6px 10px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm)}.sp-plan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.sp-plan-card{background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:16px;cursor:pointer;transition:box-shadow .15s,transform .15s}.sp-plan-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.sp-plan-date{font-weight:600;color:var(--color-primary-700);margin-bottom:4px}.sp-plan-title{font-size:var(--text-base);font-weight:500}.sp-plan-series{font-size:var(--text-sm);color:var(--color-primary-500);font-style:italic}.sp-plan-meta{font-size:var(--text-sm);color:var(--color-neutral-500);margin-top:6px}.sp-detail{max-width:900px}.sp-section{background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:20px}.plan-items-list{display:flex;flex-direction:column;gap:4px}.plan-item-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--color-neutral-200);background:#fff}.plan-item-header{background:var(--color-neutral-100);border-color:var(--color-neutral-300)}.plan-item-song{border-left:3px solid var(--color-primary-500)}.plan-item-reorder{display:flex;flex-direction:column;gap:2px}.plan-item-content{flex:1;min-width:0}.plan-item-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-team-section{border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);margin-bottom:8px;overflow:hidden}.schedule-team-header{padding:10px 14px;background:var(--color-neutral-50);cursor:pointer;border-bottom:1px solid var(--color-neutral-200)}.schedule-team-header:hover{background:var(--color-neutral-100)}.schedule-assignment-row{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--color-neutral-100)}.schedule-assignment-row:last-child{border-bottom:none}.schedule-status-badge{display:inline-block;font-size:.75em;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.song-arrangement-card{padding:8px 12px;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);margin-bottom:6px;cursor:pointer;transition:background .15s}.song-arrangement-card:hover{background:var(--color-neutral-50)}.chord-chart-textarea{font-family:Courier New,monospace;font-size:var(--text-sm);white-space:pre}.my-schedule-list{display:flex;flex-direction:column;gap:8px}.my-schedule-card{display:flex;align-items:flex-start;gap:16px;padding:14px 18px;background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg)}.my-schedule-date{font-weight:600;color:var(--color-primary-700);min-width:140px;font-size:var(--text-sm)}.my-schedule-info{flex:1}.my-schedule-service{font-weight:500}.my-schedule-team{font-size:var(--text-sm);color:var(--color-neutral-600)}.my-schedule-actions{display:flex;flex-direction:column;align-items:flex-end}.blockout-list{display:flex;flex-direction:column;gap:6px}.blockout-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}@media(max-width:700px){.sp-controls{flex-direction:column;align-items:stretch}.my-schedule-card{flex-direction:column;gap:8px}.my-schedule-date{min-width:auto}}.give-page{display:flex;justify-content:center;padding:24px}.give-card{width:100%;max-width:500px;background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:32px}.give-title{font-size:var(--text-xl);font-weight:700;margin-bottom:24px;text-align:center}.give-field{margin-bottom:16px}.give-field label{display:block;font-weight:600;font-size:var(--text-sm);margin-bottom:6px;color:var(--color-neutral-700)}.give-field select,.give-field input[type=number]{width:100%;padding:10px 12px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-base)}.give-amount-input{position:relative;display:flex;align-items:center}.give-dollar{position:absolute;left:14px;font-size:1.25rem;font-weight:600;color:var(--color-neutral-500);pointer-events:none}.give-amount-input input{padding-left:32px!important;font-size:1.25rem;font-weight:600}.give-quick-amounts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.give-quick-btn{padding:8px 16px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);background:#fff;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .15s}.give-quick-btn:hover{border-color:var(--color-primary-400);color:var(--color-primary-600)}.give-quick-btn-active{background:var(--color-primary-600);color:#fff;border-color:var(--color-primary-600)}.give-anon-row label,.give-cover-fees-row label{display:flex;align-items:center;gap:8px;font-weight:500;cursor:pointer}.give-fee-breakdown{margin-top:6px;padding:8px 12px;background:var(--color-neutral-50);border-radius:6px;font-size:.9rem;color:var(--color-neutral-600);display:flex;flex-wrap:wrap;gap:4px}.give-fee-breakdown strong{color:var(--color-neutral-800)}.give-payment-tabs{display:flex;gap:8px;margin-top:20px;margin-bottom:4px;border-bottom:2px solid var(--color-neutral-200);padding-bottom:0}.give-payment-tab{display:flex;align-items:center;gap:6px;padding:10px 16px;border:none;background:none;color:var(--color-neutral-500);font-size:var(--text-sm);font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.give-payment-tab:hover{color:var(--color-primary-600)}.give-payment-tab-active{color:var(--color-primary-700);border-bottom-color:var(--color-primary-600)}.give-stripe-section{margin-top:16px}.give-stripe-hint{font-size:var(--text-sm);color:var(--color-neutral-600);margin-bottom:12px}.give-stripe-submit{width:100%;padding:12px 20px;background:var(--color-primary-600);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background .15s;margin-top:16px}.give-stripe-submit:hover:not(:disabled){background:var(--color-primary-700)}.give-stripe-submit:disabled{opacity:.6;cursor:not-allowed}.give-again-btn{margin-top:16px;padding:10px 24px;background:var(--color-primary-600);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer}.give-again-btn:hover{background:var(--color-primary-700)}.give-paypal-container{margin-top:24px;min-height:55px}.give-no-paypal{margin-top:20px;padding:16px;text-align:center;color:var(--color-neutral-500);background:var(--color-neutral-50);border-radius:var(--radius-md);font-size:var(--text-sm)}.give-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:var(--radius-md);padding:10px 14px;margin-bottom:16px;font-size:var(--text-sm)}.give-success{text-align:center;padding:24px 0}.give-success svg{margin-bottom:16px}.give-success h2{font-size:var(--text-xl);font-weight:700;margin-bottom:8px}.give-success p{color:var(--color-neutral-600);margin-bottom:24px}.give-other-ways{width:100%;max-width:500px;margin-top:16px}.give-other-ways-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--color-neutral-500);padding:8px 0;transition:color .15s}.give-other-ways-toggle:hover{color:var(--color-neutral-700)}.give-other-ways-chevron{transition:transform .2s}.give-other-ways-chevron-open{transform:rotate(90deg)}.give-other-ways-content{margin-top:8px;display:flex;flex-direction:column;gap:12px}.give-alt-note{font-size:var(--text-sm);color:var(--color-neutral-600);line-height:1.5;margin:0;padding-left:20px;font-style:italic}.give-alt-method{background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:16px 20px}.give-alt-method-header{display:flex;align-items:center;gap:8px;font-weight:700;font-size:var(--text-base);color:var(--color-neutral-800);margin-bottom:6px}.give-alt-method-header svg{color:var(--color-primary-600);flex-shrink:0}.give-alt-fee-note{font-size:var(--text-xs);font-weight:500;color:var(--color-neutral-400);margin-left:auto}.give-alt-method-desc{font-size:var(--text-sm);color:var(--color-neutral-500);margin:0 0 12px;line-height:1.4}.give-copy-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.give-copy-row:last-child{margin-bottom:0}.give-copy-label{font-size:var(--text-sm);font-weight:600;color:var(--color-neutral-600);white-space:nowrap;min-width:72px}.give-copy-value{font-size:var(--text-sm);background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-sm);padding:4px 10px;font-family:SF Mono,Cascadia Code,monospace;color:var(--color-neutral-800);-webkit-user-select:all;user-select:all;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.give-copy-btn{font-size:12px;font-weight:600;padding:4px 12px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-sm);background:#fff;color:var(--color-primary-600);cursor:pointer;white-space:nowrap;transition:all .15s}.give-copy-btn:hover{background:var(--color-primary-50);border-color:var(--color-primary-300)}.giving-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px}.giving-summary-card{text-align:center;padding:16px}.giving-summary-label{font-size:var(--text-sm);color:var(--color-neutral-500);margin-bottom:4px}.giving-summary-value{font-size:1.35rem;font-weight:700;color:var(--color-primary-700)}.giving-status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize}.giving-status-completed{background:#dcfce7;color:#15803d}.giving-status-pending{background:#fef3c7;color:#b45309}.giving-status-refunded{background:#e0e7ff;color:#4338ca}.giving-status-failed{background:#fef2f2;color:#dc2626}.give-recurring-section{margin:8px 0 16px;padding:12px 16px;background:var(--color-neutral-50);border-radius:8px}.give-recurring-toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.give-recurring-label{font-weight:500;font-size:var(--text-base);color:var(--color-neutral-700)}.give-toggle-switch{width:44px;height:24px;border-radius:12px;background:var(--color-neutral-300);position:relative;transition:background .2s;cursor:pointer}.give-toggle-switch-on{background:#059669}.give-toggle-knob{width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s;box-shadow:0 1px 3px #0003}.give-toggle-switch-on .give-toggle-knob{transform:translate(20px)}.give-frequency-row{margin-top:12px}.give-frequency-row label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-neutral-600);margin-bottom:4px}.give-frequency-row select{width:100%;padding:8px 12px;border:1px solid var(--color-neutral-300);border-radius:6px;font-size:var(--text-base)}.feedback-overlay{position:fixed;inset:0;background:var(--surface-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);animation:overlay-fade-in .2s ease}.feedback-modal{background:var(--surface-card);border-radius:var(--radius-2xl);padding:var(--space-6);width:90%;max-width:500px;box-shadow:var(--shadow-2xl);animation:modal-slide-up .25s cubic-bezier(.16,1,.3,1)}.feedback-modal h3{margin:0 0 var(--space-4);color:var(--color-primary-700);font-size:1.2rem}.feedback-label{display:block;font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--color-neutral-700);margin-bottom:var(--space-1)}.feedback-select,.feedback-input,.feedback-textarea{width:100%;box-sizing:border-box;padding:var(--space-2) var(--space-3);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-body);font-family:inherit;margin-bottom:var(--space-3);transition:border-color .15s}.feedback-select:focus,.feedback-input:focus,.feedback-textarea:focus{outline:none;border-color:var(--color-primary-400);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 30, 58, 138),.1)}.feedback-textarea{resize:vertical;min-height:100px}.feedback-char-count{text-align:right;font-size:var(--text-xxs);color:var(--color-neutral-400);margin-top:calc(-1 * var(--space-2));margin-bottom:var(--space-3)}.feedback-error{color:#dc2626;font-size:var(--text-sm);margin:0 0 var(--space-3)}.feedback-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.fb-filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center}.fb-filters select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm)}.fb-table{width:100%;border-collapse:collapse}.fb-table th,.fb-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-neutral-200);font-size:var(--text-sm)}.fb-table th{font-weight:var(--weight-semibold);color:var(--color-neutral-500);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.fb-table tr:hover{background:var(--color-neutral-50)}.fb-table tr.fb-row-resolved{opacity:.6}.fb-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:var(--text-xxs);font-weight:var(--weight-semibold);text-transform:capitalize}.fb-badge-general{background:#e0e7ff;color:#4338ca}.fb-badge-bug{background:#fef2f2;color:#dc2626}.fb-badge-feature{background:#ecfdf5;color:#059669}.fb-badge-praise{background:#fefce8;color:#b45309}.fb-badge-question{background:#f0f9ff;color:#0284c7}.fb-badge-other{background:#f3f4f6;color:#6b7280}.fb-status{display:inline-block;padding:2px 8px;border-radius:999px;font-size:var(--text-xxs);font-weight:var(--weight-semibold)}.fb-status-open{background:#fef2f2;color:#dc2626}.fb-status-resolved{background:#ecfdf5;color:#059669}.fb-expand{margin-top:var(--space-3);padding:var(--space-4);background:var(--color-neutral-50);border-radius:var(--radius-lg);border:1px solid var(--color-neutral-200)}.fb-expand p{margin:0 0 var(--space-3);white-space:pre-wrap;font-size:var(--text-sm);line-height:1.6}.fb-expand label{font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--color-neutral-700);display:block;margin-bottom:var(--space-1)}.fb-expand textarea{width:100%;box-sizing:border-box;padding:var(--space-2) var(--space-3);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:inherit;resize:vertical;min-height:60px}.fb-expand-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3);justify-content:flex-end}.fb-empty{text-align:center;padding:var(--space-8);color:var(--color-neutral-400)}.activity-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.activity-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .875rem;border:1px solid var(--color-neutral-200);border-radius:999px;background:#fff;font-size:.8125rem;font-weight:500;color:var(--color-neutral-700);cursor:pointer;transition:all .15s ease}.activity-chip:hover{border-color:var(--color-neutral-300);box-shadow:0 1px 2px #0000000d}.activity-chip-active{background:var(--chip-color, var(--color-primary-600));color:#fff;border-color:transparent}.activity-chip-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--color-neutral-100);font-size:.6875rem;font-weight:600;color:var(--color-neutral-700)}.activity-chip-active .activity-chip-badge{background:#ffffff40;color:#fff}.activity-summary{max-width:600px}.activity-summary-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--color-neutral-100);cursor:pointer;transition:background .1s ease}.activity-summary-row:hover{background:var(--color-neutral-50)}.activity-summary-row:last-child{border-bottom:none}.activity-summary-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.activity-summary-text{flex:1;font-size:.875rem;color:var(--color-neutral-700)}.activity-summary-count{font-size:.8125rem;font-weight:600;color:var(--color-neutral-500)}.activity-detail{max-width:700px}.activity-detail-title{font-size:1.1rem;font-weight:600;color:var(--color-neutral-800);margin-bottom:1rem}.activity-detail-count{font-weight:400;color:var(--color-neutral-500);font-size:.8125rem}.activity-detail-list{display:flex;flex-direction:column}.activity-detail-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--color-neutral-100)}.activity-detail-item:last-child{border-bottom:none}.activity-detail-item-main{display:flex;flex-direction:column;gap:2px;min-width:0}.activity-detail-item-title{font-size:.875rem;font-weight:500;color:var(--color-neutral-800);line-height:1.3}.activity-detail-item-subtitle{font-size:.8125rem;color:var(--color-neutral-500);line-height:1.3}.activity-detail-item-time{font-size:.75rem;color:var(--color-neutral-400);white-space:nowrap;flex-shrink:0}.activity-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-neutral-200)}.activity-pagination button{padding:.375rem .875rem;border:1px solid var(--color-neutral-200);border-radius:6px;background:#fff;font-size:.8125rem;color:var(--color-primary-600);cursor:pointer}.activity-pagination button:hover:not(:disabled){background:var(--color-primary-50);border-color:var(--color-primary-300)}.activity-pagination button:disabled{opacity:.4;cursor:not-allowed}.activity-pagination span{font-size:.8125rem;color:var(--color-neutral-500)}@media(max-width:640px){.activity-chips{gap:.25rem}.activity-chip{padding:.25rem .625rem;font-size:.75rem}}.music-stand-page{padding:var(--space-6)}.music-stand-page h2{margin:0 0 var(--space-1) 0}.music-stand-subtitle{color:var(--color-neutral-500);margin:0 0 var(--space-6) 0}.music-stand-empty{text-align:center;padding:var(--space-10) var(--space-4);color:var(--color-neutral-500)}.music-stand-empty p{margin:var(--space-2) 0}.music-stand-plan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.music-stand-plan-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-5);background:var(--surface-card);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:var(--transition-base);width:100%}.music-stand-plan-card:hover{border-color:var(--color-primary-400);box-shadow:var(--shadow-md);transform:translateY(-1px)}.music-stand-plan-date{font-weight:var(--font-semibold);font-size:var(--text-lg);color:var(--color-neutral-900)}.music-stand-plan-type{font-size:var(--text-sm);color:var(--color-neutral-600)}.music-stand-plan-roles{display:flex;flex-wrap:wrap;gap:var(--space-1)}.music-stand-role-badge{background:var(--color-primary-50);color:var(--color-primary-700);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-weight:var(--font-medium)}.music-stand-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-neutral-200);margin-bottom:var(--space-4);flex-wrap:wrap}.music-stand-toolbar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.music-stand-toolbar-right{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.music-stand-plan-title{font-weight:var(--font-semibold);font-size:var(--text-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-stand-transpose{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.music-stand-transpose label{font-weight:var(--font-medium);white-space:nowrap}.music-stand-transpose select{padding:var(--space-1) var(--space-2);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--surface-card)}.music-stand-font-controls{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm)}.music-stand-font-size{min-width:1.5rem;text-align:center;font-size:var(--text-xs);color:var(--color-neutral-500)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);background:var(--surface-card);cursor:pointer;color:var(--color-neutral-700);transition:var(--transition-fast)}.btn-icon:hover{background:var(--color-neutral-100);border-color:var(--color-neutral-400)}.btn-link{background:none;border:none;color:var(--color-primary-600);cursor:pointer;font-size:var(--text-sm);padding:0}.btn-link:hover{text-decoration:underline}.music-stand-body{display:flex;gap:var(--space-5);min-height:0}.music-stand-setlist{width:260px;min-width:260px;max-height:calc(100vh - 220px);overflow-y:auto;border-right:1px solid var(--color-neutral-200);padding-right:var(--space-4)}.music-stand-setlist-title{font-size:var(--text-sm);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-500);margin:0 0 var(--space-3) 0}.music-stand-setlist-header{font-weight:var(--font-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-500);padding:var(--space-3) var(--space-2) var(--space-1);border-top:1px solid var(--color-neutral-100);margin-top:var(--space-2)}.music-stand-setlist-header:first-child{border-top:none;margin-top:0}.music-stand-setlist-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-2);border:none;background:none;cursor:pointer;border-radius:var(--radius-md);text-align:left;transition:var(--transition-fast);font-size:var(--text-sm)}.music-stand-setlist-item:hover{background:var(--color-neutral-50)}.music-stand-setlist-item.active{background:var(--color-primary-50);color:var(--color-primary-800);font-weight:var(--font-medium)}.music-stand-setlist-item.generic{color:var(--color-neutral-500)}.music-stand-item-seq{width:1.25rem;text-align:center;font-size:var(--text-xs);color:var(--color-neutral-400);flex-shrink:0}.music-stand-item-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-stand-item-key{font-size:var(--text-xs);background:var(--color-neutral-100);padding:1px 6px;border-radius:var(--radius-sm);color:var(--color-neutral-600);flex-shrink:0}.music-stand-item-duration{font-size:var(--text-xs);color:var(--color-neutral-400);flex-shrink:0}.music-stand-detail{flex:1;min-width:0;max-height:calc(100vh - 220px);overflow-y:auto}.music-stand-song-header{margin-bottom:var(--space-3)}.music-stand-song-title{font-size:var(--text-xl);font-weight:var(--font-bold);margin:0}.music-stand-song-author{font-size:var(--text-sm);color:var(--color-neutral-500)}.music-stand-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.music-stand-badge{font-size:var(--text-xs);background:var(--color-neutral-100);color:var(--color-neutral-700);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-weight:var(--font-medium);white-space:nowrap}.music-stand-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);border-bottom:2px solid var(--color-neutral-100)}.music-stand-tab{padding:var(--space-2) var(--space-4);border:none;background:none;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-neutral-500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:var(--transition-fast)}.music-stand-tab:hover{color:var(--color-neutral-700)}.music-stand-tab.active{color:var(--color-primary-600);border-bottom-color:var(--color-primary-600)}.music-stand-content{line-height:1.7}.music-stand-chart{font-family:Courier New,Courier,monospace;white-space:pre-wrap;word-break:break-word;margin:0;padding:var(--space-4);background:var(--color-neutral-50);border-radius:var(--radius-md);border:1px solid var(--color-neutral-200);line-height:1.8}.music-stand-lyrics{white-space:pre-wrap;padding:var(--space-4)}.music-stand-item-notes{padding:var(--space-4);color:var(--color-neutral-600)}.music-stand-nav{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-neutral-200)}.music-stand-nav button{display:inline-flex;align-items:center;gap:var(--space-1)}.music-stand-nav-indicator{font-size:var(--text-sm);color:var(--color-neutral-500)}.music-stand-fullscreen{position:fixed;inset:0;z-index:9999;background:var(--surface-page);overflow-y:auto;padding:var(--space-4) var(--space-6)}.music-stand-fullscreen .music-stand-setlist,.music-stand-fullscreen .music-stand-detail{max-height:calc(100vh - 100px)}.music-stand-dark{background:#1a1a2e!important;color:#e0e0e0}.music-stand-dark .music-stand-toolbar{border-bottom-color:#333}.music-stand-dark .music-stand-plan-title,.music-stand-dark .music-stand-song-title{color:#fff}.music-stand-dark .music-stand-setlist{border-right-color:#333}.music-stand-dark .music-stand-setlist-item:hover{background:#ffffff0d}.music-stand-dark .music-stand-setlist-item.active{background:#6366f126;color:#a5b4fc}.music-stand-dark .music-stand-setlist-header{border-top-color:#333;color:#888}.music-stand-dark .music-stand-chart{background:#16213e;border-color:#333;color:#e0e0e0}.music-stand-dark .music-stand-badge{background:#2a2a4a;color:silver}.music-stand-dark .music-stand-tab{color:#888}.music-stand-dark .music-stand-tab.active{color:#a5b4fc;border-bottom-color:#a5b4fc}.music-stand-dark .music-stand-tabs{border-bottom-color:#333}.music-stand-dark .music-stand-nav{border-top-color:#333}.music-stand-dark .btn-secondary{background:#2a2a4a;border-color:#444;color:silver}.music-stand-dark .btn-secondary:hover{background:#336}.music-stand-dark .btn-icon{background:#2a2a4a;border-color:#444;color:silver}.music-stand-dark .btn-icon:hover{background:#336}.music-stand-dark .music-stand-transpose select{background:#2a2a4a;border-color:#444;color:#e0e0e0}.music-stand-dark .music-stand-item-key{background:#2a2a4a;color:#a0a0a0}@media(max-width:768px){.music-stand-page{padding:var(--space-4)}.music-stand-body{flex-direction:column}.music-stand-setlist{width:100%;min-width:0;max-height:none;border-right:none;border-bottom:1px solid var(--color-neutral-200);padding-right:0;padding-bottom:var(--space-3);margin-bottom:var(--space-3)}.music-stand-detail{max-height:none}.music-stand-toolbar{flex-direction:column;align-items:flex-start}.music-stand-toolbar-right{width:100%;justify-content:flex-start}}
