:root{--primary: #002045;--primary-container: #1a365d;--on-primary: #ffffff;--on-primary-container: #d0e0ff;--secondary: #545f71;--secondary-container: #d8e3f8;--on-secondary: #ffffff;--tertiary: #005049;--tertiary-fixed: #89f5e7;--on-tertiary-container: #005049;--on-tertiary-fixed-variant: #005049;--surface: #f7f9fb;--surface-bright: #fafcfe;--surface-container-lowest: #ffffff;--surface-container-low: #f2f4f6;--surface-container: #eceff1;--surface-container-high: #e6e8ea;--surface-container-highest: #dfe2e5;--surface-tint: #2e5c9e;--on-surface: #191c1e;--on-surface-variant: #43474e;--outline: #74777f;--outline-variant: #c4c6cf;--success: #1a6b4a;--success-container: #d4f5e4;--warning: #8a5d00;--warning-container: #fdeec7;--error: #93000a;--error-container: #ffdad6;--info: #3a5ba0;--info-container: #d8e2ff;--font-display: "Noto Serif", Georgia, "Times New Roman", serif;--font-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--space-8: 2.75rem;--space-10: 3.5rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 999px;--shadow-ambient: 0 4px 30px rgba(25, 28, 30, .04);--shadow-lifted: 0 8px 40px rgba(25, 28, 30, .06);--shadow-overlay: 0 12px 48px rgba(25, 28, 30, .08);--glass-bg: rgba(255, 255, 255, .8);--glass-blur: blur(12px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);color:var(--on-surface);background:var(--surface);line-height:1.6;letter-spacing:-.005em}::selection{background:var(--tertiary-fixed);color:var(--primary)}.display-lg{font-family:var(--font-display);font-size:2.75rem;font-weight:400;letter-spacing:-.02em;line-height:1.15;color:var(--primary)}.display-md{font-family:var(--font-display);font-size:2.25rem;font-weight:400;letter-spacing:-.02em;line-height:1.2;color:var(--primary)}.headline-lg{font-family:var(--font-display);font-size:1.75rem;font-weight:500;letter-spacing:-.015em;line-height:1.25;color:var(--primary)}.headline-md{font-family:var(--font-display);font-size:1.375rem;font-weight:500;letter-spacing:-.01em;line-height:1.3;color:var(--on-surface)}.headline-sm{font-family:var(--font-display);font-size:1.125rem;font-weight:600;line-height:1.35;color:var(--on-surface)}.title-lg{font-family:var(--font-body);font-size:1.125rem;font-weight:600;line-height:1.4}.title-md{font-family:var(--font-body);font-size:.9375rem;font-weight:600;line-height:1.4}.title-sm{font-family:var(--font-body);font-size:.8125rem;font-weight:600;letter-spacing:.01em;line-height:1.4}.body-lg{font-size:1rem;color:var(--on-surface-variant);line-height:1.6}.body-md{font-size:.875rem;color:var(--on-surface-variant);line-height:1.55}.body-sm{font-size:.8125rem;color:var(--on-surface-variant);line-height:1.5}.label-lg{font-family:var(--font-body);font-size:.8125rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase;color:var(--on-surface-variant)}.label-sm{font-family:var(--font-body);font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--outline)}.app-layout{display:flex;min-height:100vh}.sidebar{width:300px;background:var(--primary);color:var(--on-primary);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50;overflow-y:auto;overflow-x:hidden}.sidebar-header{padding:var(--space-4) var(--space-5) var(--space-2)}.sidebar-logo{width:85%;height:auto;margin-bottom:var(--space-1);object-fit:contain}.sidebar-header h1{font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:var(--space-2);color:var(--on-primary)}.sidebar-header .subtitle{font-family:var(--font-body);font-size:.7rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#ffffff73;margin-top:var(--space-1)}.sidebar-nav{flex:1;padding:var(--space-3) 0}.sidebar-nav a{display:flex;align-items:center;gap:var(--space-3);padding:.65rem var(--space-5);color:#ffffff8c;text-decoration:none;font-size:.85rem;font-weight:500;letter-spacing:.005em;transition:color .2s ease,background .2s ease;position:relative}.sidebar-nav a:hover{color:#ffffffe6;background:#ffffff0f}.sidebar-nav a.active{color:var(--on-primary);background:#ffffff1a}.sidebar-nav a.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--tertiary-fixed);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;font-size:.85rem;opacity:.65;flex-shrink:0}.sidebar-user{padding:var(--space-5);background:#00000026;font-size:.85rem}.sidebar-user .user-name{font-weight:600;font-size:.85rem;color:var(--on-primary)}.sidebar-user .user-roles{color:#fff6;font-size:.7rem;letter-spacing:.02em;margin-top:2px}.main-content{flex:1;margin-left:300px;padding:var(--space-7) var(--space-7) var(--space-10);max-width:1200px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-7)}.page-header h2{font-family:var(--font-display);font-size:1.75rem;font-weight:500;letter-spacing:-.015em;color:var(--primary)}.card{background:var(--surface-container-lowest);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-6);box-shadow:var(--shadow-ambient);transition:box-shadow .25s ease,background .25s ease}.card:hover{box-shadow:var(--shadow-lifted)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding-bottom:var(--space-4)}.card-header h3{font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--on-surface)}.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:var(--radius-full);font-family:var(--font-body);font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.badge-draft{background:var(--surface-container-high);color:var(--outline)}.badge-submitted{background:var(--info-container);color:var(--info)}.badge-confirmed{background:var(--success-container);color:var(--success)}.badge-on_hold_pastorate{background:var(--warning-container);color:var(--warning)}.badge-waitlisted{background:#ede9fe;color:#6d28d9}.badge-rejected{background:var(--error-container);color:var(--error)}.badge-cancelled{background:var(--surface-container-high);color:var(--outline)}.badge-completed{background:var(--success-container);color:var(--success)}.badge-pending{background:var(--warning-container);color:var(--warning)}.badge-approved{background:var(--success-container);color:var(--success)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.6rem 1.35rem;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.8125rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:all .2s ease;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-container) 100%);color:var(--on-primary);box-shadow:0 2px 12px #00204533}.btn-primary:hover:not(:disabled){box-shadow:0 4px 20px #0020454d;transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,var(--success) 0%,#1e7e54 100%);color:#fff;box-shadow:0 2px 12px #1a6b4a33}.btn-success:hover:not(:disabled){box-shadow:0 4px 20px #1a6b4a4d;transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,var(--error) 0%,#b41c1c 100%);color:#fff;box-shadow:0 2px 12px #93000a26}.btn-danger:hover:not(:disabled){box-shadow:0 4px 20px #93000a40;transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--primary);border:1px solid rgba(196,198,207,.15);box-shadow:0 0 0 1px #c4c6cf26}.btn-outline:hover:not(:disabled){background:var(--surface-container-low);box-shadow:0 0 0 1px #c4c6cf4d}.btn-tertiary{background:none;border:none;color:var(--on-tertiary-fixed-variant);padding:.6rem .75rem}.btn-tertiary:hover:not(:disabled){background:#0050490f}.btn-sm{padding:.4rem .85rem;font-size:.75rem}.btn-lg{padding:.75rem 1.75rem;font-size:.875rem}.form-group{margin-bottom:var(--space-5)}.form-group label{display:block;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--on-surface-variant);margin-bottom:var(--space-2)}.form-group label .required{color:var(--error);margin-left:2px}.form-control{width:100%;padding:.65rem .85rem;background:var(--surface-container-highest);border:none;border-bottom:2px solid var(--outline-variant);border-radius:var(--radius-md) var(--radius-md) 0 0;font-family:var(--font-body);font-size:.9rem;color:var(--on-surface);transition:border-color .2s ease,background .2s ease}.form-control:focus{outline:none;border-bottom-color:var(--surface-tint);background:var(--surface-container-lowest)}.form-control::placeholder{color:var(--outline)}select.form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%2343474e'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.25rem}textarea.form-control{min-height:90px;resize:vertical;border-radius:var(--radius-md);border:2px solid transparent;border-bottom:2px solid var(--outline-variant)}textarea.form-control:focus{border-bottom-color:var(--surface-tint)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.form-radio-group{display:flex;gap:var(--space-5);padding:var(--space-2) 0}.form-radio-group label{display:flex;align-items:center;gap:var(--space-2);font-weight:500;font-size:.875rem;text-transform:none;letter-spacing:normal;cursor:pointer;color:var(--on-surface)}.form-radio-group input[type=radio]{width:1.1rem;height:1.1rem;accent-color:var(--primary)}table{width:100%;border-collapse:collapse}th,td{padding:.85rem 1rem;text-align:left}th{font-family:var(--font-body);font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--outline);background:transparent;padding-bottom:var(--space-3)}tbody tr{transition:background .15s ease;border-radius:var(--radius-md)}tbody tr:nth-child(2n){background:var(--surface-container-low)}tbody tr:hover{background:var(--surface-container)}td{font-size:.875rem;color:var(--on-surface-variant);border:none}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-7)}.stat-card{background:var(--surface-container-lowest);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-5) var(--space-4);box-shadow:var(--shadow-ambient);transition:box-shadow .25s ease,transform .25s ease}.stat-card:hover{box-shadow:var(--shadow-lifted);transform:translateY(-2px)}.stat-card .stat-label{font-family:var(--font-body);font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--outline)}.stat-card .stat-value{font-family:var(--font-display);font-size:2.25rem;font-weight:600;letter-spacing:-.02em;color:var(--primary);margin-top:var(--space-2)}.cal-wrapper{border-radius:var(--radius-xl);overflow:hidden;background:var(--surface-container-lowest);box-shadow:var(--shadow-ambient)}.cal-header{display:grid;grid-template-columns:64px repeat(7,1fr);background:var(--surface-container)}.cal-header-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.04em;gap:2px}.cal-day-name{font-size:.68rem;font-weight:700;color:var(--on-surface-variant)}.cal-day-num{font-size:.95rem;font-weight:600;color:var(--on-surface)}.cal-today .cal-day-name{color:var(--primary)}.cal-today-num{background:var(--primary);color:var(--on-primary)!important;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.85rem}.cal-body{display:grid;grid-template-columns:64px repeat(7,1fr);position:relative}.cal-time-gutter{position:relative;background:var(--surface-container-low)}.cal-time-label{position:absolute;width:100%;padding-right:8px;text-align:right;font-size:.68rem;font-weight:500;color:var(--outline);line-height:1;transform:translateY(-50%);box-sizing:border-box}.cal-day-col{position:relative;border-right:1px solid rgba(196,198,207,.1)}.cal-day-col:last-child{border-right:none}.cal-today-col{background:color-mix(in srgb,var(--primary) 4%,transparent)}.cal-hour-line{position:absolute;left:0;right:0;height:0;border-top:1px solid rgba(196,198,207,.1)}.cal-event{position:absolute;left:3px;right:3px;border-radius:var(--radius-sm);padding:2px 6px;overflow:hidden;cursor:pointer;z-index:2;font-size:.65rem;font-weight:600;letter-spacing:.01em;line-height:1.25;transition:box-shadow .15s ease,transform .1s ease}.cal-event:hover{box-shadow:0 2px 8px #0000002e;transform:scale(1.02);z-index:10}.cal-event-time{font-size:.6rem;font-weight:500;opacity:.85}.cal-event-title{font-size:.68rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-booker{font-size:.55rem;font-weight:400;font-style:italic;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-confirmed{background:var(--info-container);color:var(--info);border-left:3px solid var(--info)}.cal-event-on_hold_pastorate{background:var(--warning-container);color:var(--warning);border-left:3px solid var(--warning)}.cal-event-blackout{background:var(--surface-container-high);color:var(--outline);border-left:3px solid var(--outline)}.cal-event-church_service{background:#4a3880;color:#f0ecf8;border-left:3px solid #7c5cbf;font-style:italic}.cal-event-youth_service{background:#1a6b5a;color:#e0f5f0;border-left:3px solid #2da88a;font-style:italic}.cal-event-children_service{background:#b55a1e;color:#fef0e6;border-left:3px solid #e07a30;font-style:italic}.cal-event-booked{background:#1a5e8a;color:#e4f0fa;border-left:3px solid #3094d4}.cal-legend{display:flex;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-container-low);font-size:.72rem;color:var(--on-surface-variant)}.cal-legend-item{display:flex;align-items:center;gap:6px}.cal-legend-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.cal-legend-confirmed{background:#1a5e8a}.cal-legend-pending{background:var(--warning)}.cal-legend-service{background:#4a3880}.cal-legend-youth{background:#1a6b5a}.cal-legend-children{background:#b55a1e}.calendar-controls{display:flex;align-items:center;gap:var(--space-3)}.calendar-controls .week-label{font-family:var(--font-display);font-weight:500;font-size:.95rem;min-width:200px;text-align:center;color:var(--on-surface)}.alert{padding:.85rem var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4);font-size:.85rem;font-weight:500}.alert-error{background:var(--error-container);color:var(--error)}.alert-success{background:var(--success-container);color:var(--success)}.alert-info{background:var(--info-container);color:var(--info)}.alert-warning{background:var(--warning-container);color:var(--warning)}.admin-form-card{background:var(--surface-container);border:1px solid rgba(196,198,207,.15);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4)}.form-grid-4{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.login-container{display:flex;height:100vh;background:var(--primary);position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;top:-30%;right:-10%;width:65%;height:160%;background:radial-gradient(ellipse,rgba(137,245,231,.06) 0%,transparent 70%);pointer-events:none}.login-container:after{content:"";position:absolute;bottom:-20%;left:-10%;width:50%;height:120%;background:radial-gradient(ellipse,rgba(26,54,93,.4) 0%,transparent 70%);pointer-events:none}.login-left{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6) 5%;position:relative;z-index:1}.login-left .brand-logo{height:auto;width:min(420px,60%);margin-bottom:var(--space-3);object-fit:contain}.login-left h1{font-family:var(--font-display);font-size:2.75rem;font-weight:400;letter-spacing:-.02em;color:var(--on-primary);line-height:1.15;margin-bottom:var(--space-3);text-align:center}.login-left .tagline{font-family:var(--font-body);font-size:.9rem;font-weight:400;color:#fff6;line-height:1.6;max-width:360px;text-align:center}.login-right{display:flex;align-items:center;justify-content:center;padding:var(--space-7);position:relative;z-index:1}.login-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-2xl);padding:var(--space-7);width:400px;box-shadow:var(--shadow-overlay)}.login-card .card-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--on-surface);margin-bottom:var(--space-1)}.login-card .card-subtitle{font-size:.8rem;color:var(--outline);margin-bottom:var(--space-6)}.login-users{display:flex;flex-direction:column;gap:var(--space-2)}.login-user-btn{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--space-4);background:var(--surface-container-lowest);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;text-align:left;box-shadow:var(--shadow-ambient)}.login-user-btn:hover{background:var(--surface-bright);box-shadow:var(--shadow-lifted);transform:translateY(-1px)}.login-user-btn:active{transform:translateY(0)}.login-user-btn .name{font-family:var(--font-body);font-weight:600;font-size:.875rem;color:var(--on-surface)}.login-user-btn .roles{font-size:.7rem;font-weight:500;color:var(--outline);letter-spacing:.01em;margin-top:2px}.login-user-btn .email-hint{font-size:.7rem;color:var(--outline-variant);font-weight:500}.login-microsoft-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:14px var(--space-6);background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:var(--radius-lg);cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:1rem;letter-spacing:.01em;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #00000014;margin-top:var(--space-5)}.login-microsoft-btn:hover{background:#f8f9fa;box-shadow:0 2px 8px #00000026;transform:translateY(-1px);border-color:#c0c4c9}.login-microsoft-btn:active{transform:translateY(0)}.login-microsoft-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-microsoft-btn svg{flex-shrink:0}.login-footer-text{text-align:center;font-size:.75rem;color:var(--outline);margin-top:var(--space-4);line-height:1.5}.empty-state{text-align:center;padding:var(--space-10) var(--space-4);color:var(--outline)}.empty-state .icon{font-size:2.5rem;margin-bottom:var(--space-4);opacity:.6}.empty-state h3{font-family:var(--font-display);font-size:1.125rem;color:var(--on-surface-variant);margin-bottom:var(--space-2)}.empty-state p{font-size:.85rem;color:var(--outline)}.approval-card{border-left:4px solid var(--warning);padding-left:calc(var(--space-6) - 4px)}.approval-card:hover{border-left-color:var(--tertiary)}.approval-actions{display:flex;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-6)}.detail-item label{font-family:var(--font-body);font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--outline)}.detail-item .value{font-size:.95rem;font-weight:500;color:var(--on-surface);margin-top:var(--space-1)}.section-inset{background:var(--surface-container-low);border-radius:var(--radius-xl);padding:var(--space-5)}.section-highlight{background:var(--surface-container);border-radius:var(--radius-lg);padding:var(--space-5)}.filter-bar{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-lg);box-shadow:var(--shadow-ambient)}.btn-signout{display:block;width:100%;margin-top:var(--space-3);padding:.5rem;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:#fff6;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:all .2s ease;text-align:center}.btn-signout:hover{background:#ffffff0f;color:#ffffffb3}.loading-screen{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--surface)}.loading-spinner{width:32px;height:32px;border:3px solid var(--surface-container-high);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}a.link-primary{color:var(--primary);text-decoration:none;font-weight:500;transition:color .15s ease}a.link-primary:hover{color:var(--primary-container)}a.link-teal{color:var(--on-tertiary-fixed-variant);text-decoration:none;font-weight:500}a.link-teal:hover{text-decoration:underline}.admin-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-6);padding:var(--space-1);background:var(--surface-container-low);border-radius:var(--radius-lg);width:fit-content}.admin-tab{padding:.55rem 1.25rem;background:transparent;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:var(--on-surface-variant);cursor:pointer;transition:all .2s ease;letter-spacing:.005em}.admin-tab:hover{background:var(--surface-container);color:var(--on-surface)}.admin-tab-active{background:var(--surface-container-lowest);color:var(--primary);box-shadow:var(--shadow-ambient)}.mobile-topbar{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:var(--primary);color:var(--on-primary);z-index:100;align-items:center;padding:0 var(--space-4);gap:var(--space-3)}.mobile-topbar-logo{height:32px;width:auto;object-fit:contain}.mobile-topbar-title{font-family:var(--font-display);font-size:1.1rem;font-weight:600;letter-spacing:-.01em}.hamburger-btn{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.hamburger-icon{display:flex;flex-direction:column;gap:5px;width:22px}.hamburger-icon span{display:block;height:2px;width:100%;background:var(--on-primary);border-radius:2px;transition:all .25s ease;transform-origin:center}.hamburger-icon.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-icon.open span:nth-child(2){opacity:0}.hamburger-icon.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:49}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--surface-container-lowest);box-shadow:0 -2px 20px #191c1e14;z-index:100;align-items:center;justify-content:space-around;padding:0 var(--space-2)}.bottom-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-1) var(--space-2);text-decoration:none;color:var(--outline);font-size:.65rem;font-weight:600;letter-spacing:.02em;transition:color .2s ease;min-width:56px}.bottom-tab.active{color:var(--primary)}.bottom-tab-icon{font-size:1.25rem;line-height:1}.bottom-tab-label{text-transform:uppercase;letter-spacing:.04em}.bottom-tab-primary .bottom-tab-icon{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-container) 100%);color:var(--on-primary);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 2px 12px #00204540;margin-top:-12px}.bottom-tab-primary.active .bottom-tab-icon{box-shadow:0 4px 20px #00204559}@media (max-width: 768px){.sidebar{display:flex;position:fixed;top:0;left:-308px;width:300px;bottom:0;z-index:200;transition:left .3s cubic-bezier(.4,0,.2,1)}.sidebar-mobile-open{left:0}.mobile-topbar{display:flex}.mobile-overlay{display:block}.mobile-bottom-nav{display:flex}.main-content{margin-left:0;padding:calc(56px + var(--space-4)) var(--space-4) calc(64px + var(--space-4))}.form-row{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.login-container{flex-direction:column}.login-left{padding:var(--space-7) var(--space-5)}.login-left h1{font-size:2rem}.login-left .brand-logo{width:min(280px,70%)}.login-card{width:100%;max-width:400px}.admin-tabs{width:100%;overflow-x:auto}.form-grid-4{grid-template-columns:1fr 1fr}.page-header h2{font-size:1.35rem}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}}.toast-container{position:fixed;top:var(--space-5);right:var(--space-5);z-index:9999;display:flex;flex-direction:column;gap:var(--space-3);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);min-width:320px;max-width:480px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;animation:toast-in .35s cubic-bezier(.21,1.02,.73,1) forwards;font-size:.875rem;font-weight:500;line-height:1.4}.toast-exit{animation:toast-out .3s ease-in forwards}.toast-success{background:var(--success-container);color:var(--success);border-left:4px solid var(--success)}.toast-error{background:var(--error-container);color:var(--error);border-left:4px solid var(--error)}.toast-warning{background:var(--warning-container);color:var(--warning);border-left:4px solid var(--warning)}.toast-info{background:var(--info-container);color:var(--info);border-left:4px solid var(--info)}.toast-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700}.toast-message{flex:1}.toast-close{flex-shrink:0;background:none;border:none;color:inherit;opacity:.6;cursor:pointer;font-size:1.2rem;padding:0 2px;line-height:1;transition:opacity .15s}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translate(100%) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%) scale(.95)}}@media (max-width: 768px){.toast-container{top:var(--space-3);right:var(--space-3);left:var(--space-3)}.toast{min-width:unset;max-width:100%}}
