@keyframes spinner-rotate{to{transform:rotate(360deg)}}.loading-spinner-css{border:5px solid var(--border-default, #e5e7eb);border-top-color:var(--color-primary-500, #007bff);border-radius:50%;animation:spinner-rotate .75s linear infinite;flex-shrink:0}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:var(--space-8);gap:var(--space-3)}.loading-spinner-container.fullscreen{min-height:100vh}.loading-spinner-container.inline{padding:var(--space-4)}.loading-spinner-container.compact{display:inline-flex;flex-direction:row;width:auto;padding:0;min-height:0!important}.loading-spinner-text{color:var(--text-secondary);font-size:var(--text-sm)}.loading-spinner-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-10);border-radius:var(--radius-xl, 16px);background-color:var(--bg-primary, #ffffff);box-shadow:0 10px 40px #0000001f,0 2px 10px #00000014;border:1px solid rgba(0,0,0,.06);min-width:200px}.loading-spinner-card-text{margin:0;font-size:var(--text-base, 16px);color:var(--text-secondary);font-weight:500}.loading-spinner-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);z-index:var(--z-modal, 1000);background-color:#f8fafceb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-spinner-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease-out,visibility .25s ease-out}.loading-spinner-overlay.visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .25s ease-out,visibility .25s ease-out}.loading-spinner-overlay.initial{background-color:#ffffffe6}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spinner-rotate .75s linear infinite;flex-shrink:0}.btn-spinner.dark{border-color:var(--border-default, #e5e7eb);border-top-color:var(--color-primary-500, #007bff)}.error-report-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-max);padding:var(--space-5);animation:errorModalFadeIn var(--duration-fast) var(--ease-out)}@keyframes errorModalFadeIn{0%{opacity:0}to{opacity:1}}.error-report-modal{background-color:var(--bg-primary);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;position:relative;animation:errorModalSlideUp var(--duration-slow) var(--ease-out)}@keyframes errorModalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.error-report-modal-close{position:absolute;top:var(--space-3);right:var(--space-3);width:32px;height:32px;border:none;background:transparent;cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;transition:var(--transition-all)}.error-report-modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-secondary)}.error-report-modal-close svg{width:20px;height:20px}.error-report-modal-header{padding:var(--space-6) var(--space-6) var(--space-4);text-align:center;border-bottom:1px solid var(--border-default)}.error-report-modal-icon{width:48px;height:48px;margin:0 auto var(--space-4);color:var(--color-error-500)}.error-report-modal-icon svg{width:100%;height:100%}.error-report-modal-header h2{margin:0 0 var(--space-2) 0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:var(--tracking-tight)}.error-report-modal-header p{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.error-report-modal-body{padding:var(--space-5) var(--space-6)}.error-report-auto-reported{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background-color:var(--color-success-50);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-success-600);margin-bottom:var(--space-4)}.error-report-auto-reported svg{width:16px;height:16px;flex-shrink:0}.error-report-form-group{margin-bottom:var(--space-4)}.error-report-form-group label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.error-report-form-group select,.error-report-form-group textarea{width:100%;padding:var(--space-3);font-family:var(--font-body);font-size:var(--text-sm);border:1px solid var(--border-default);border-radius:var(--radius-lg);background-color:var(--bg-primary);color:var(--text-primary);transition:var(--transition-all)}.error-report-form-group select:focus,.error-report-form-group textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-primary-100)}.error-report-form-group textarea{resize:vertical;min-height:100px}.error-report-char-count{display:block;text-align:right;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.error-report-error{padding:var(--space-3) var(--space-4);background-color:var(--color-error-50);border:1px solid var(--color-error-100);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-error-500);margin-bottom:var(--space-4)}.error-report-warning{padding:var(--space-3) var(--space-4);background-color:var(--color-warning-50);border:1px solid var(--color-warning-100);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-warning-600)}.error-report-modal-footer{padding:var(--space-4) var(--space-6) var(--space-6);display:flex;gap:var(--space-3);justify-content:flex-end}.error-report-btn{padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-all);border:none}.error-report-btn:disabled{opacity:.5;cursor:not-allowed}.error-report-btn.primary{background-color:var(--color-primary-500);color:var(--text-inverse)}.error-report-btn.primary:hover:not(:disabled){background-color:var(--color-primary-600)}.error-report-btn.secondary{background-color:var(--color-neutral-200);color:var(--text-primary)}.error-report-btn.secondary:hover:not(:disabled){background-color:var(--color-neutral-300)}.error-report-modal-success{padding:var(--space-10) var(--space-6);text-align:center}.error-report-success-icon{width:64px;height:64px;margin:0 auto var(--space-5);color:var(--color-success-500)}.error-report-success-icon svg{width:100%;height:100%}.error-report-modal-success p{margin:0 0 var(--space-3) 0;font-size:var(--text-base);color:var(--color-success-600)}.error-report-correlation{font-size:var(--text-sm)!important;color:var(--text-secondary)!important}.error-report-correlation code{background-color:var(--bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs)}@media (max-width: 500px){.error-report-modal-overlay{padding:var(--space-3)}.error-report-modal-header,.error-report-modal-body,.error-report-modal-footer{padding-left:var(--space-4);padding-right:var(--space-4)}.error-report-modal-footer{flex-direction:column-reverse}.error-report-btn{width:100%;justify-content:center}}.session-expired-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-max);padding:var(--space-5);animation:session-fade-in var(--duration-fast) var(--ease-out)}@keyframes session-fade-in{0%{opacity:0}to{opacity:1}}.session-expired-dialog{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-width:440px;width:100%;overflow:hidden;animation:session-slide-in var(--duration-normal) var(--ease-out)}@keyframes session-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.session-expired-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3)}.session-expired-icon{font-size:1.5rem;flex-shrink:0}.session-expired-header h3{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.session-expired-body{padding:0 var(--space-5) var(--space-4)}.session-expired-body p{margin:0 0 var(--space-2);color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5}.session-expired-actions{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-5);justify-content:flex-end}.session-expired-actions button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.session-expired-btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-primary)}.session-expired-btn-secondary:hover{background:var(--bg-tertiary)}.session-expired-btn-primary{background:var(--color-info-500);color:#fff;border:none}.session-expired-btn-primary:hover{background:var(--color-info-600, #2563eb)}.session-expired-btn-primary:disabled{opacity:.6;cursor:not-allowed}.main-navigation{background-color:var(--bg-primary);border-bottom:1px solid var(--border-default);margin:0;flex-shrink:0;height:var(--nav-height);display:flex;justify-content:center;align-items:center;position:relative;padding:0 var(--space-4);box-shadow:var(--shadow-xs)}.nav-list{display:flex;list-style:none;margin:0;padding:0;gap:var(--space-1)}.nav-list li{position:relative;margin:0}.nav-list a,.dropdown-toggle{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:var(--text-secondary);text-decoration:none;font-family:var(--font-body);font-weight:var(--font-medium);font-size:var(--text-sm);transition:var(--transition-all);cursor:pointer;height:40px;box-sizing:border-box;position:relative;border-radius:var(--radius-lg);background:transparent;border:none;white-space:nowrap}.nav-list a:hover,.dropdown-toggle:hover{color:var(--color-primary-600);background-color:var(--color-primary-50)}.nav-list a.active{color:var(--color-primary-600);background-color:var(--color-primary-50);font-weight:var(--font-semibold)}.nav-list a.active:after{content:"";position:absolute;bottom:0;left:var(--space-2);right:var(--space-2);height:2px;background-color:var(--color-primary-500);border-radius:var(--radius-full)}.has-dropdown{position:relative}.dropdown-toggle{display:flex;align-items:center;gap:var(--space-2)}.dropdown-arrow{font-size:var(--text-2xs);color:var(--text-tertiary);transition:transform var(--duration-normal) var(--ease-in-out);margin-left:var(--space-1)}.dropdown-arrow.expanded{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:calc(100% + var(--space-1));left:0;min-width:220px;background-color:var(--bg-primary);box-shadow:var(--shadow-lg);border-radius:var(--radius-xl);list-style:none;margin:0;padding:var(--space-2);z-index:var(--z-dropdown);border:1px solid var(--border-default);animation:dropdownSlide var(--duration-fast) var(--ease-out)}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu li{margin:0}.dropdown-menu a{display:flex;align-items:center;width:100%;border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);margin-bottom:2px;background:transparent;color:var(--text-secondary);font-size:var(--text-sm);height:auto}.dropdown-menu a:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.dropdown-menu a.active{background-color:var(--color-primary-50);color:var(--color-primary-600);font-weight:var(--font-semibold)}.dropdown-menu a.active:after{display:none}.dropdown-menu a:last-child{margin-bottom:0}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-2);margin-left:var(--space-2);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);line-height:1}.nav-badge.pending{background:var(--color-warning-500);color:var(--text-inverse);animation:badgePulse 2s ease-in-out infinite}.nav-badge.approval{background:var(--color-error-500);color:var(--text-inverse);animation:badgePulse 2s ease-in-out infinite}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.nav-list a:hover .nav-badge.pending,.nav-list a.active .nav-badge.pending{background:var(--color-warning-600)}.nav-list a:hover .nav-badge.approval,.nav-list a.active .nav-badge.approval{background:var(--color-error-600)}.nav-list .dept-tag{display:inline-flex;align-items:center;margin-left:var(--space-2);padding:3px var(--space-2);font-size:var(--text-2xs);font-weight:var(--font-semibold);line-height:1;letter-spacing:var(--tracking-wider);text-transform:uppercase;border-radius:var(--radius-full);background:var(--color-accent-50);color:var(--color-accent-700);border:1px solid var(--color-accent-200);-webkit-user-select:none;user-select:none}@media (max-width: 480px){.nav-list .dept-tag{font-size:9px;padding:2px var(--space-1)}}.nav-authentication{display:flex;align-items:center;padding-right:var(--space-4);position:absolute;right:0}.authentication-container{display:flex;align-items:center;min-width:200px;justify-content:flex-end}.authenticated-user{display:flex;align-items:center;background-color:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);margin:0;min-height:40px;box-sizing:border-box;position:relative}.authenticated-user span{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium);margin-right:var(--space-3);white-space:nowrap}.login-button{background-color:var(--color-primary-500);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);padding:var(--space-2) var(--space-5);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-all);display:flex;align-items:center;min-height:40px;white-space:nowrap;box-shadow:var(--shadow-sm)}.login-button:hover{background-color:var(--color-primary-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.login-button:active{transform:translateY(0)}.logout-button{background-color:transparent;color:var(--text-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-all)}.logout-button:hover{background-color:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-strong)}.my-profile-link{background-color:transparent;color:var(--text-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-all);text-decoration:none;margin-right:var(--space-2)}.my-profile-link:hover{background-color:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-strong)}.session-chip{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--space-2);height:22px;font-size:var(--text-xs);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;border-radius:var(--radius-full);line-height:1;margin-right:var(--space-2);-webkit-user-select:none;user-select:none;cursor:default}.session-chip.session-active{background-color:var(--color-success-50);color:var(--color-success-700);border:1px solid var(--color-success-200)}.session-chip.session-warning{background-color:var(--color-warning-50);color:var(--color-warning-700);border:1px solid var(--color-warning-200)}.session-chip.session-critical{background-color:var(--color-error-50);color:var(--color-error-700);border:1px solid var(--color-error-200);animation:sessionPulse 1.5s ease-in-out infinite}@keyframes sessionPulse{0%,to{opacity:1}50%{opacity:.6}}.username-display{display:flex;align-items:center;gap:var(--space-1)}.username-display.admin-clickable{cursor:pointer;padding:var(--space-1) var(--space-2);margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-2));margin-right:var(--space-1);border-radius:var(--radius-md);transition:var(--transition-all)}.username-display.admin-clickable:hover{background-color:var(--bg-tertiary)}.username-display.simulating{color:var(--color-accent-700);font-weight:var(--font-semibold)}.role-dropdown-arrow{font-size:var(--text-2xs);color:var(--text-tertiary);transition:transform var(--duration-normal) var(--ease-in-out)}.role-dropdown-arrow.expanded{transform:rotate(180deg)}.role-dropdown-menu{position:absolute;top:calc(100% + var(--space-1));left:0;min-width:240px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);z-index:var(--z-max);overflow:hidden;animation:dropdownSlide var(--duration-fast) var(--ease-out)}.role-dropdown-header{padding:var(--space-3) var(--space-4);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;color:var(--text-tertiary);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);letter-spacing:var(--tracking-wider)}.role-dropdown-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;cursor:pointer;text-align:left;transition:var(--transition-all)}.role-dropdown-item:hover{background-color:var(--bg-secondary)}.role-dropdown-item .role-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.role-dropdown-item .role-description{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.role-dropdown-divider{height:1px;background:var(--border-default);margin:var(--space-1) 0}.role-dropdown-item.exit-simulation{color:var(--color-error-500);flex-direction:row;justify-content:center;font-weight:var(--font-medium)}.role-dropdown-item.exit-simulation:hover{background-color:var(--color-error-50)}.nav-calendar-selector option{color:var(--text-primary);background-color:var(--bg-primary);padding:var(--space-2)}.loading-indicator{position:absolute;bottom:-20px;left:var(--space-3);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);box-shadow:var(--shadow-sm);z-index:var(--z-dropdown);color:var(--text-secondary)}.shared-calendar-toggle-item{display:flex;align-items:center;margin:0 var(--space-3)}.role-simulator-nav-item{margin-left:auto;padding-left:var(--space-4)}@media (max-width: 992px){.main-navigation{padding:0 var(--space-3)}.nav-list a,.dropdown-toggle{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}}@media (max-width: 768px){.main-navigation{height:auto;min-height:var(--nav-height);padding:var(--space-2) var(--space-3)}.nav-list{flex-wrap:wrap;justify-content:center;gap:var(--space-1)}.authenticated-user span{font-size:var(--text-xs);margin-right:var(--space-2)}.nav-authentication{padding-right:var(--space-2)}.dropdown-menu{position:fixed;top:auto;left:var(--space-4);right:var(--space-4);width:auto;max-height:60vh;overflow-y:auto}}@media (max-width: 480px){.nav-list a,.dropdown-toggle{padding:var(--space-2);font-size:var(--text-xs)}.nav-badge{min-width:16px;height:16px;font-size:var(--text-2xs);padding:0 var(--space-1)}}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:100%;margin:0;padding:0;overflow-y:auto;overflow-x:hidden;background-color:var(--bg-primary)}.app-container.signed-out{min-height:100vh;height:100vh}.loading-fallback{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary);font-size:var(--text-base)}.app-header{display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-700) 100%);padding:var(--space-4) var(--space-5);margin-bottom:0;border-bottom:none;width:100%;min-height:var(--header-height);height:var(--header-height);box-sizing:border-box;box-shadow:var(--shadow-md);flex-shrink:0;position:relative;z-index:var(--z-sticky);transition:background var(--duration-slow) var(--ease-in-out)}.app-header.simulating{background:linear-gradient(135deg,var(--color-warning-100) 0%,var(--color-accent-200) 100%);box-shadow:0 2px 8px #f59e0b40}.app-header.simulating .app-title{color:var(--color-warning-700)}.app-title{font-family:var(--font-display);color:var(--text-inverse);margin:0;font-size:var(--text-xl);font-weight:var(--font-normal);text-align:center;letter-spacing:var(--tracking-tight)}.app-header .authentication-container{position:absolute;right:var(--space-5);top:50%;transform:translateY(-50%)}main{flex:1;overflow-y:auto;overflow-x:hidden;padding:0;display:flex;flex-direction:column;width:100%;max-width:100%;min-height:calc(100vh - var(--header-height) - var(--nav-height));background-color:var(--bg-secondary)}.app-container.signed-out main{width:100%;max-width:none}.welcome-landing{display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - var(--header-height));width:100%;background:var(--bg-secondary)}.welcome-hero{position:relative;display:flex;align-items:center;justify-content:center;width:100%;padding:var(--space-12) var(--space-6) var(--space-10);overflow:hidden}.welcome-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.08) 0%,transparent 60%),linear-gradient(135deg,var(--color-primary-600),var(--color-primary-700));z-index:0}.welcome-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.welcome-logo-ring{display:flex;align-items:center;justify-content:center;width:100px;height:100px;border-radius:var(--radius-2xl);background:#fff;box-shadow:0 0 0 3px var(--color-accent-400),var(--shadow-lg)}.welcome-logo{width:88px;height:88px;border-radius:var(--radius-xl);object-fit:cover;background:#fff}.welcome-title{margin:0;font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-semibold);color:var(--text-inverse);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.welcome-subtitle{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-accent-300);letter-spacing:.2em;text-transform:uppercase}.welcome-body{display:flex;flex-direction:column;align-items:center;width:100%;max-width:480px;padding:var(--space-8) var(--space-6);gap:var(--space-4);text-align:center}.welcome-heading{margin:0;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);color:var(--text-primary)}.welcome-desc{margin:0;font-size:var(--text-lg);color:var(--text-secondary);line-height:var(--leading-relaxed);max-width:400px}.welcome-desc-secondary{margin:0;font-size:var(--text-sm);color:var(--text-tertiary);line-height:var(--leading-relaxed)}.welcome-features{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);width:100%;max-width:360px;margin-top:var(--space-4)}.welcome-feature-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-3);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs)}.welcome-feature-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-lg);background:var(--color-primary-50);color:var(--color-primary-600)}.welcome-feature-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}.welcome-footer{display:flex;align-items:center;justify-content:center;padding:var(--space-6);margin-top:auto}.welcome-signin-btn{width:100%;max-width:320px;padding:var(--space-4);min-height:48px;background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600));border:none;border-radius:var(--radius-lg);color:var(--text-inverse);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;box-shadow:var(--shadow-md);margin-top:var(--space-2)}.welcome-signin-btn:hover{opacity:.95;box-shadow:var(--shadow-lg)}.welcome-signin-btn:active{opacity:.9}@media (min-width: 481px){.welcome-signin-btn,.welcome-desc-secondary{display:none}}.welcome-footer-text{font-family:var(--font-display);font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--text-tertiary);letter-spacing:.15em;text-transform:uppercase}.calendar-container{display:flex;flex-direction:column;background-color:var(--bg-primary);flex:1;min-height:0;overflow:hidden;margin:0;padding:0;width:100%;max-width:100%;box-sizing:border-box}.calendar-header{margin-bottom:var(--space-6)}.calendar-layout{display:flex;flex:1;overflow:hidden;align-items:stretch;justify-content:flex-start;width:100%;min-height:0}.admin-content{max-width:100%;padding:var(--space-5);background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.admin-content h2{font-family:var(--font-display);color:var(--color-primary-600);margin-bottom:var(--space-5);font-size:var(--text-2xl);border-bottom:1px solid var(--border-default);padding-bottom:var(--space-3)}.admin-section{margin-bottom:var(--space-8)}.admin-section h3{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-primary);margin-bottom:var(--space-4)}.admin-section h4{font-size:var(--text-lg);margin:var(--space-4) 0 var(--space-3)}.form-group{margin-bottom:var(--space-4);display:flex;flex-direction:column}.form-group label{font-weight:var(--font-semibold);margin-bottom:var(--space-1);font-size:var(--text-sm);color:var(--text-secondary)}.form-group input,.form-group select{padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-lg);font-size:var(--text-sm);width:100%;transition:var(--transition-all)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-primary-100)}.properties-container{background-color:var(--bg-secondary);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-5)}.property-row{display:grid;grid-template-columns:2fr 1fr auto;gap:var(--space-4);align-items:end;margin-bottom:var(--space-3)}.button-row{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-3)}.section-divider{border:none;border-top:1px solid var(--border-default);margin:var(--space-8) 0}.primary-button{padding:var(--space-2) var(--space-5);background-color:var(--color-primary-500);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);cursor:pointer;font-weight:var(--font-medium);font-size:var(--text-sm);transition:var(--transition-all);box-shadow:var(--shadow-sm)}.primary-button:hover{background-color:var(--color-primary-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.primary-button:active{transform:translateY(0)}.secondary-button{padding:var(--space-2) var(--space-5);background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;font-weight:var(--font-medium);font-size:var(--text-sm);transition:var(--transition-all)}.secondary-button:hover{background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-strong)}.remove-button,.delete-button{padding:var(--space-2) var(--space-4);background-color:var(--bg-primary);color:var(--color-error-500);border:1px solid var(--color-error-500);border-radius:var(--radius-lg);cursor:pointer;font-weight:var(--font-medium);font-size:var(--text-sm);transition:var(--transition-all)}.remove-button:hover:not([disabled]),.delete-button:hover:not([disabled]){background-color:var(--color-error-50);border-color:var(--color-error-600)}.remove-button[disabled],.delete-button[disabled]{opacity:.5;cursor:not-allowed}.cancel-button{padding:var(--space-2) var(--space-4);background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-all)}.cancel-button:hover{background-color:var(--bg-secondary)}.save-button{padding:var(--space-2) var(--space-4);background-color:var(--color-primary-500);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);cursor:pointer;font-weight:var(--font-medium);transition:var(--transition-all)}.save-button:hover{background-color:var(--color-primary-600)}.add-event-button,.export-calendar-button{padding:var(--space-2) var(--space-4);background-color:var(--color-primary-500);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);cursor:pointer;white-space:nowrap;font-weight:var(--font-medium);transition:var(--transition-all)}.add-event-button:hover,.export-calendar-button:hover{background-color:var(--color-primary-600)}.calendar-controls{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-4);flex-wrap:wrap;gap:var(--space-3)}.view-selector{display:flex;gap:var(--space-3)}.view-selector button{padding:var(--space-2) var(--space-3);background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-all)}.view-selector button.active{background-color:var(--color-primary-500);color:var(--text-inverse);border-color:var(--color-primary-500)}.view-mode-selector{display:flex;margin:0 var(--space-3)}.view-mode-selector button{padding:var(--space-1) var(--space-3);background-color:var(--bg-secondary);border:1px solid var(--border-default);cursor:pointer;transition:var(--transition-all)}.view-mode-selector button.active{background-color:var(--color-primary-500);color:var(--text-inverse);border-color:var(--color-primary-500)}.view-mode-selector button:first-child{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.view-mode-selector button:last-child{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.navigation{display:flex;gap:var(--space-3)}.navigation button{padding:var(--space-2) var(--space-3);background-color:var(--bg-primary);color:var(--color-primary-500);border:1px solid var(--color-primary-500);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-all)}.navigation button:hover{background-color:var(--color-primary-50)}.current-range{font-weight:var(--font-semibold);font-size:var(--text-base);color:var(--text-primary)}.zoom-controls{display:flex;align-items:center;margin:0 var(--space-3)}.zoom-controls button{background-color:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:30px;height:30px;font-size:var(--text-base);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-all)}.zoom-controls button:hover{background-color:var(--bg-tertiary)}.zoom-controls span{margin:0 var(--space-2);font-size:var(--text-sm);min-width:45px;text-align:center}.calendar-sidebar{width:200px;min-width:200px;padding:var(--space-4);background-color:var(--bg-secondary);border-radius:var(--radius-lg);margin-right:var(--space-5);flex-shrink:0}.month-filter-select{width:100%;padding:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin-top:var(--space-3);background-color:var(--bg-primary);font-size:var(--text-sm);transition:var(--transition-all)}.month-filter-select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-primary-100)}.calendar-grid{width:100%;flex:1}.calendar-grid.zoomed{transform-origin:top left}.grid-header{display:flex;background-color:var(--color-primary-500);color:var(--text-inverse);position:sticky;top:0}.grid-row{display:flex}.grid-cell{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-cell{font-weight:var(--font-semibold);text-align:center}.category-header{min-width:120px;background-color:var(--color-primary-700)}.category-cell{min-width:120px;background-color:var(--bg-secondary);font-weight:var(--font-semibold);position:sticky;left:0}.location-cell{font-weight:var(--font-bold);padding:var(--space-1);background-color:var(--bg-secondary)}.day-cell{min-height:var(--calendar-cell-min-height);vertical-align:top}.month-view-container{width:100%;height:100%;display:flex;flex-direction:column;border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}.month-header{margin-bottom:0}.weekday-header{display:grid;grid-template-columns:repeat(7,1fr);background-color:var(--color-primary-500);color:var(--text-inverse);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.weekday{text-align:center;font-weight:var(--font-semibold);padding:var(--space-2);border-right:1px solid rgba(255,255,255,.2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.weekday:last-child{border-right:none}.month-days{display:flex;flex-direction:column;flex:1}.week-row{display:grid;grid-template-columns:repeat(7,1fr);flex:1;min-height:120px;border-bottom:1px solid var(--border-subtle)}.week-row:last-child{border-bottom:none}.day-cell{position:relative;padding:var(--space-2);border-right:1px solid var(--border-subtle);background-color:var(--bg-primary);overflow:hidden;display:flex;flex-direction:column;transition:var(--transition-all)}.day-cell:last-child{border-right:none}.day-cell:hover{background-color:var(--bg-secondary)}.day-cell.outside-month{background-color:var(--bg-tertiary)}.day-cell .day-number{font-weight:var(--font-semibold);text-align:right;padding:var(--space-1);margin-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.day-cell.outside-month .day-number{color:var(--text-tertiary)}.day-events{flex:1;overflow-y:auto;font-size:var(--text-xs);padding:var(--space-1)}.day-cell.current-day{background-color:var(--color-primary-50);box-shadow:var(--calendar-today-ring)}.day-cell.current-day .day-number{background-color:var(--color-primary-500);color:var(--text-inverse);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2)}.event-item{position:relative;background-color:var(--color-primary-50);border-left:3px solid var(--color-primary-500);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1);border-radius:var(--radius-md);font-size:var(--text-xs);cursor:pointer;transition:var(--transition-all);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-item:hover{background-color:var(--color-primary-100);transform:translate(2px)}.event-item.has-overlap{border-left-width:4px;box-shadow:inset 0 0 0 1px var(--color-primary-200)}.event-item.overlap-main{background-color:var(--color-error-50);border-left-color:var(--color-error-500)}.event-item.overlap-setup-teardown{background:repeating-linear-gradient(45deg,transparent,transparent 5px,var(--color-primary-50) 5px,var(--color-primary-50) 10px)}.event-container{position:relative;width:calc(100% - 12px);min-height:20px}.event-positioned{position:absolute;transition:var(--transition-all)}.overlap-badge{position:absolute;top:2px;right:2px;background:var(--color-error-500);color:var(--text-inverse);font-size:var(--text-2xs);font-weight:var(--font-bold);border-radius:var(--radius-full);width:16px;height:16px;display:flex;align-items:center;justify-content:center;z-index:1}.event-setup-teardown{position:relative}.event-setup-teardown:before{content:"";position:absolute;left:-8px;top:0;bottom:0;width:4px;background:repeating-linear-gradient(45deg,var(--color-primary-500),var(--color-primary-500) 2px,transparent 2px,transparent 4px)}.event-time-extended{font-size:var(--text-2xs);color:var(--text-tertiary);font-style:italic;margin-top:var(--space-1)}.event-time{font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:var(--space-1)}.event-title{font-weight:var(--font-semibold);margin-bottom:var(--space-1);color:var(--text-primary)}.event-location{font-size:var(--text-xs);color:var(--text-secondary)}.event-extension{font-size:var(--text-2xs);color:var(--text-tertiary);margin-top:var(--space-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-category-group,.day-location-group{display:flex;justify-content:space-between;align-items:center;padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1);border-radius:var(--radius-md);background-color:var(--bg-secondary);border:1px solid var(--border-subtle)}.category-label,.location-label{display:flex;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:80%;font-size:var(--text-2xs)}.category-color,.location-color{width:8px;height:8px;border-radius:var(--radius-full);margin-left:var(--space-1);margin-right:var(--space-1);flex-shrink:0}.events-count{background-color:var(--color-info-100);color:var(--color-info-600);border-radius:var(--radius-full);padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);font-weight:var(--font-bold)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;z-index:var(--z-modal-backdrop);animation:fadeIn var(--duration-fast) var(--ease-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-container{background-color:var(--bg-primary);border-radius:var(--modal-radius);width:var(--modal-width-md);max-width:95%;max-height:95vh;display:flex;flex-direction:column;box-shadow:var(--modal-shadow);overflow:hidden;animation:slideUp var(--duration-normal) var(--ease-out)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:center;align-items:center;position:relative;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-default);flex-shrink:0;min-height:60px;background:var(--bg-secondary)}.modal-header h3{margin:0;font-family:var(--font-display);color:var(--color-primary-600);font-size:var(--text-lg);font-weight:var(--font-normal)}.modal-close{position:absolute;right:var(--space-5);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-medium);cursor:pointer;color:var(--text-secondary);padding:var(--space-2) var(--space-3);line-height:1;transition:var(--transition-all);min-width:32px;height:32px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-strong);transform:translateY(-1px)}.modal-close:active{transform:translateY(0)}.modal-content{padding:var(--space-5);flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;max-height:calc(95vh - 60px)}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:transparent}.modal-content::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-sm)}.modal-content::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}.event-form{display:flex;flex-direction:column;gap:var(--space-4)}.delete-confirmation{padding:var(--space-3) 0}.context-menu{position:fixed;background-color:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);min-width:150px;overflow:hidden}.context-menu-item{padding:var(--space-2) var(--space-4);cursor:pointer;transition:var(--transition-all)}.context-menu-item:hover{background-color:var(--bg-secondary)}.context-menu-item.delete{color:var(--color-error-500)}.context-menu-item.delete:hover{background-color:var(--color-error-50)}.multi-select-container{position:relative;width:100%;margin-bottom:0}.multi-select-container label{display:block;margin-bottom:var(--space-1);font-weight:var(--font-semibold);font-size:var(--text-sm)}.multi-select-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background-color:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-all)}.multi-select-header:hover,.multi-select-header.active{border-color:var(--border-focus)}.multi-select-options{position:absolute;left:0;right:0;top:100%;max-height:200px;overflow-y:auto;background-color:var(--bg-primary);border:1px solid var(--border-default);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-md);z-index:var(--z-dropdown)}.multi-select-option{display:flex;align-items:center;padding:var(--space-2) var(--space-3);cursor:pointer;transition:var(--transition-all)}.multi-select-option:hover{background-color:var(--bg-secondary)}.multi-select-option.selected{background-color:var(--color-primary-50)}.multi-select-option input{margin-right:var(--space-2)}.dropdown-arrow{font-size:var(--text-xs);transition:transform var(--duration-normal) var(--ease-in-out)}.multi-select-header.active .dropdown-arrow{transform:rotate(180deg)}.schema-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}.schema-item{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4);background-color:var(--bg-secondary)}.schema-item h4{color:var(--color-primary-600);margin-top:0;margin-bottom:var(--space-3);font-size:var(--text-lg)}.property-list{margin:var(--space-4) 0}.property-list ul{margin:var(--space-3) 0 0 var(--space-5);padding:0}.property-list li{margin-bottom:var(--space-1)}.schema-actions{margin-top:var(--space-4);text-align:right}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.app-skeleton{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:var(--bg-primary)}.app-skeleton-header{height:var(--header-height);background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-700) 100%);display:flex;align-items:center;justify-content:center;padding:0 var(--space-5)}.app-skeleton-header-title{width:200px;height:24px;background:#fff3;border-radius:var(--radius-md)}.app-skeleton-nav{height:var(--nav-height, 48px);background:var(--bg-secondary);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-5);border-bottom:1px solid var(--border-subtle)}.app-skeleton-nav-item{width:80px;height:20px}.app-skeleton-content{flex:1;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.app-skeleton-toolbar{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0}.app-skeleton-toolbar-left{display:flex;gap:var(--space-3)}.app-skeleton-toolbar-btn{width:100px;height:36px}.app-skeleton-toolbar-right{display:flex;gap:var(--space-2)}.app-skeleton-toolbar-icon{width:36px;height:36px}.app-skeleton-calendar{flex:1;display:flex;flex-direction:column;border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}.app-skeleton-calendar-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-primary-500);padding:var(--space-2);gap:var(--space-2)}.app-skeleton-weekday{height:20px;background:#ffffff4d;border-radius:var(--radius-sm)}.app-skeleton-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);flex:1;gap:1px;background:var(--border-subtle)}.app-skeleton-day{background:var(--bg-primary);min-height:100px;padding:var(--space-2)}.app-skeleton-day-number{width:24px;height:16px;margin-bottom:var(--space-2)}.app-skeleton-event{height:20px;margin-bottom:var(--space-1)}.loading-container{display:flex;justify-content:center;align-items:center;height:400px;width:100%}.loading{font-size:var(--text-lg);color:var(--text-secondary);text-align:center;padding:var(--space-5)}.app-loading-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:400px;width:100%;background-color:var(--bg-primary)}.app-loading-screen p{margin-top:var(--space-5);font-size:var(--text-lg);color:var(--text-secondary)}.app-status{display:flex;align-items:center}.status-badge{padding:var(--space-1) var(--space-2);background-color:var(--color-accent-500);color:var(--text-inverse);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-semibold)}.app-navigation{display:flex;gap:var(--space-5)}.nav-link{color:var(--text-secondary);text-decoration:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);transition:var(--transition-all)}.nav-link:hover{background-color:var(--bg-secondary)}.nav-link.active{color:var(--color-primary-500);font-weight:var(--font-semibold);border:2px solid var(--color-primary-500)}.ai-chat-fab{position:fixed;bottom:var(--space-6);right:var(--space-6);width:60px;height:60px;border-radius:var(--radius-full);background:var(--bg-primary);border:2px solid var(--border-default);cursor:pointer;box-shadow:var(--shadow-lg);z-index:var(--z-fixed);display:flex;align-items:center;justify-content:center;padding:0;transition:var(--transition-all)}.ai-chat-fab:hover{transform:scale(1.08);box-shadow:var(--shadow-xl);border-color:var(--color-primary-300)}.ai-chat-fab:active{transform:scale(.95)}.ai-chat-fab-icon{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-full)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hidden-input{display:none}.mt-0{margin-top:0}.mt-5{margin-top:var(--space-5)}.mb-5{margin-bottom:var(--space-5)}.mr-1{margin-right:var(--space-1)}.mr-2{margin-right:var(--space-2)}.ml-2{margin-left:var(--space-2)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-muted{color:var(--text-tertiary)}.font-mono{font-family:var(--font-mono)}.w-full{width:100%}@media (max-width: 992px){.calendar-controls{flex-direction:column;align-items:flex-start}.add-event-button,.export-calendar-button{align-self:flex-start}}@media (max-width: 768px){.calendar-layout{flex-direction:column}.calendar-sidebar{width:100%;margin-right:0;margin-bottom:var(--space-4)}.week-row{min-height:100px}.day-cell{padding:var(--space-1)}.day-number{font-size:var(--text-xs)}.event-item{padding:var(--space-1)}.modal-container{width:95%;max-height:90vh}}@media (max-width: 480px){.view-selector,.navigation{display:flex;width:100%;justify-content:space-between}.view-selector button,.navigation button{flex:1;text-align:center}.calendar-header h2{font-size:var(--text-lg)}.current-range{font-size:var(--text-sm)}.app-header{display:none}}.error-boundary-container{display:flex;align-items:center;justify-content:center;min-height:400px;padding:var(--space-10) var(--space-5);background-color:var(--color-error-50);border-radius:var(--radius-xl);margin:var(--space-5)}.error-boundary-content{max-width:500px;text-align:center}.error-boundary-icon{width:64px;height:64px;margin:0 auto var(--space-5);color:var(--color-error-500)}.error-boundary-icon svg{width:100%;height:100%}.error-boundary-container h2{margin:0 0 var(--space-4) 0;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-error-700);letter-spacing:var(--tracking-tight)}.error-boundary-message{margin:0 0 var(--space-4) 0;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-error-700)}.error-boundary-correlation{margin:0 0 var(--space-5) 0;font-size:var(--text-sm);color:var(--text-secondary)}.error-boundary-correlation code{background-color:var(--bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm)}.error-boundary-reporting{margin:0 0 var(--space-4) 0;font-size:var(--text-sm);color:var(--text-secondary);font-style:italic}.error-boundary-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-top:var(--space-6)}.error-boundary-btn{padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-all);border:none}.error-boundary-btn.primary{background-color:var(--color-primary-500);color:var(--text-inverse)}.error-boundary-btn.primary:hover{background-color:var(--color-primary-600)}.error-boundary-btn.secondary{background-color:var(--color-neutral-200);color:var(--text-primary)}.error-boundary-btn.secondary:hover{background-color:var(--color-neutral-300)}.error-boundary-btn.tertiary{background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.error-boundary-btn.tertiary:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.error-boundary-details{margin-top:var(--space-6);text-align:left;background-color:var(--bg-primary);border:1px solid var(--color-error-100);border-radius:var(--radius-lg);overflow:hidden}.error-boundary-details summary{padding:var(--space-3) var(--space-4);cursor:pointer;font-size:var(--text-sm);color:var(--color-error-700);background-color:var(--color-error-50);transition:var(--transition-colors)}.error-boundary-details summary:hover{background-color:var(--color-error-100)}.error-boundary-stack{margin:0;padding:var(--space-4);font-size:var(--text-xs);font-family:var(--font-mono);white-space:pre-wrap;word-wrap:break-word;overflow-x:auto;color:var(--color-error-700);background-color:var(--bg-primary);max-height:300px;overflow-y:auto}@media (max-width: 600px){.error-boundary-container{padding:var(--space-5) var(--space-4);margin:var(--space-3)}.error-boundary-icon{width:48px;height:48px}.error-boundary-container h2{font-size:var(--text-xl)}.error-boundary-message{font-size:var(--text-sm)}.error-boundary-actions{flex-direction:column}.error-boundary-btn{width:100%}}.toast-container{position:fixed;top:var(--space-5);right:var(--space-5);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-3);max-width:450px;pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:var(--leading-relaxed);animation:toastSlideIn var(--duration-slow) var(--ease-out);pointer-events:auto;max-width:100%;transition:transform var(--duration-slow) var(--ease-out)}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-exit{animation:toastSlideOut var(--duration-slow) var(--ease-in) forwards}@keyframes toastSlideOut{to{transform:translate(100%);opacity:0}}.toast-success{background:var(--color-success-50);color:var(--color-success-700);border-left:4px solid var(--color-success-500)}.toast-info{background:var(--color-info-50);color:var(--color-info-700);border-left:4px solid var(--color-info-500)}.toast-warning{background:var(--color-warning-50);color:var(--color-warning-700);border-left:4px solid var(--color-warning-500)}.toast-error{background:var(--color-error-50);color:var(--color-error-700);border-left:4px solid var(--color-error-500)}.toast-critical{background:var(--color-secondary-50);color:var(--color-secondary-700);border-left:4px solid var(--color-secondary-500)}.toast-icon{font-size:var(--text-lg);flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.toast-message{flex:1;word-break:break-word}.toast-dismiss{background:none;border:none;font-size:var(--text-xl);cursor:pointer;color:inherit;opacity:.6;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity var(--duration-fast) var(--ease-in-out);border-radius:var(--radius-md)}.toast-dismiss:hover{opacity:1;background:#0000001a}@media (max-width: 480px){.toast-container{right:var(--space-3);left:var(--space-3);max-width:none}.toast{padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}}:root{--color-primary-50: #eef4ff;--color-primary-100: #dae6ff;--color-primary-200: #bdd4ff;--color-primary-300: #90baff;--color-primary-400: #5c94fc;--color-primary-500: #3b6eb8;--color-primary-600: #2d5a9e;--color-primary-700: #1e4785;--color-primary-800: #1a3a6b;--color-primary-900: #162f57;--color-accent-50: #fefce8;--color-accent-100: #fef9c3;--color-accent-200: #fef08a;--color-accent-300: #fde047;--color-accent-400: #facc15;--color-accent-500: #eab308;--color-accent-600: #ca8a04;--color-accent-700: #a16207;--color-accent-800: #854d0e;--color-accent-900: #713f12;--color-neutral-0: #ffffff;--color-neutral-50: #fafaf9;--color-neutral-100: #f5f5f4;--color-neutral-200: #e7e5e4;--color-neutral-300: #d6d3d1;--color-neutral-400: #a8a29e;--color-neutral-500: #78716c;--color-neutral-600: #57534e;--color-neutral-700: #44403c;--color-neutral-800: #292524;--color-neutral-900: #1c1917;--color-success-50: #ecfdf5;--color-success-100: #d1fae5;--color-success-400: #34d399;--color-success-500: #059669;--color-success-600: #047857;--color-success-700: #065f46;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-400: #fbbf24;--color-warning-500: #d97706;--color-warning-600: #b45309;--color-warning-700: #92400e;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-300: #fca5a5;--color-error-400: #f87171;--color-error-500: #dc2626;--color-error-600: #b91c1c;--color-error-700: #991b1b;--color-info-50: #f0f9ff;--color-info-100: #e0f2fe;--color-info-400: #38bdf8;--color-info-500: #0284c7;--color-info-600: #0369a1;--color-info-700: #075985;--bg-primary: var(--color-neutral-0);--bg-secondary: var(--color-neutral-50);--bg-tertiary: var(--color-neutral-100);--bg-inverse: var(--color-neutral-900);--bg-brand: var(--color-primary-500);--bg-brand-subtle: var(--color-primary-50);--bg-accent: var(--color-accent-500);--bg-accent-subtle: var(--color-accent-50);--text-primary: var(--color-neutral-900);--text-secondary: var(--color-neutral-600);--text-tertiary: var(--color-neutral-500);--text-inverse: var(--color-neutral-0);--text-brand: var(--color-primary-600);--text-accent: var(--color-accent-700);--text-link: var(--color-primary-600);--text-link-hover: var(--color-primary-700);--border-default: var(--color-neutral-200);--border-subtle: var(--color-neutral-100);--border-strong: var(--color-neutral-300);--border-brand: var(--color-primary-500);--border-focus: var(--color-primary-400);--font-display: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--text-2xs: .625rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--tracking-tighter: -.05em;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .05em;--tracking-widest: .1em;--space-0: 0;--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;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-none: 0;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / .05);--shadow-primary: 0 4px 14px 0 rgb(59 110 184 / .25);--shadow-accent: 0 4px 14px 0 rgb(234 179 8 / .25);--duration-instant: 0ms;--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--transition-colors: color var(--duration-normal) var(--ease-in-out), background-color var(--duration-normal) var(--ease-in-out), border-color var(--duration-normal) var(--ease-in-out);--transition-transform: transform var(--duration-normal) var(--ease-out);--transition-shadow: box-shadow var(--duration-normal) var(--ease-in-out);--transition-all: all var(--duration-normal) var(--ease-in-out);--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--z-max: 9999;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--header-height: 64px;--nav-height: 56px;--sidebar-width: 280px;--sidebar-collapsed: 64px;--btn-height-sm: 32px;--btn-height-md: 40px;--btn-height-lg: 48px;--btn-padding-sm: var(--space-2) var(--space-3);--btn-padding-md: var(--space-2) var(--space-4);--btn-padding-lg: var(--space-3) var(--space-6);--input-height-sm: 32px;--input-height-md: 40px;--input-height-lg: 48px;--input-padding: var(--space-2) var(--space-3);--input-border-width: 1px;--card-padding: var(--space-6);--card-radius: var(--radius-xl);--card-shadow: var(--shadow-sm);--card-shadow-hover: var(--shadow-md);--table-header-bg: var(--color-neutral-50);--table-row-hover: var(--color-neutral-50);--table-border: var(--color-neutral-200);--modal-width-sm: 400px;--modal-width-md: 560px;--modal-width-lg: 720px;--modal-width-xl: 900px;--modal-radius: var(--radius-2xl);--modal-shadow: var(--shadow-2xl);--badge-padding: var(--space-1) var(--space-2);--badge-radius: var(--radius-full);--badge-font-size: var(--text-xs);--calendar-cell-min-height: 100px;--calendar-event-radius: var(--radius-md);--calendar-today-ring: 2px solid var(--color-primary-400);--primary-color: var(--color-primary-500);--secondary-color: var(--color-primary-600);--light-gray: var(--color-neutral-100);--dark-gray: var(--color-neutral-700);--white: var(--color-neutral-0);--shadow: var(--shadow-md);--error-color: var(--color-error-500);--error-hover: var(--color-error-600);--background-light: var(--bg-secondary);--border-color: var(--border-default);--text-muted: var(--text-tertiary);--hover-light: var(--color-neutral-50);--primary-light: var(--color-primary-50);--transition-normal: var(--transition-all)}@media (prefers-color-scheme: dark){:root.dark-mode{--bg-primary: var(--color-neutral-900);--bg-secondary: var(--color-neutral-800);--bg-tertiary: var(--color-neutral-700);--text-primary: var(--color-neutral-50);--text-secondary: var(--color-neutral-300);--text-tertiary: var(--color-neutral-400);--border-default: var(--color-neutral-700);--border-subtle: var(--color-neutral-800);--border-strong: var(--color-neutral-600)}}.focus-ring:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-body);font-weight:var(--font-medium);text-decoration:none;border:none;cursor:pointer;transition:var(--transition-all);white-space:nowrap;position:relative;overflow:hidden}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-sm{height:var(--btn-height-sm);padding:var(--btn-padding-sm);font-size:var(--text-xs);border-radius:var(--radius-md)}.btn-md{height:var(--btn-height-md);padding:var(--btn-padding-md);font-size:var(--text-sm);border-radius:var(--radius-lg)}.btn-lg{height:var(--btn-height-lg);padding:var(--btn-padding-lg);font-size:var(--text-base);border-radius:var(--radius-lg)}.btn-primary{background-color:var(--color-primary-500);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-secondary{background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-default)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-strong)}.btn-ghost{background-color:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--bg-secondary);color:var(--text-primary)}.btn-danger{background-color:var(--color-error-500);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-600);transform:translateY(-1px)}.btn-danger-outline{background-color:var(--bg-primary);color:var(--color-error-500);border:1px solid var(--color-error-500)}.btn-danger-outline:hover:not(:disabled){background-color:var(--color-error-50);border-color:var(--color-error-600)}.btn-success{background-color:var(--color-success-500);color:var(--text-inverse)}.btn-success:hover:not(:disabled){background-color:var(--color-success-600);transform:translateY(-1px)}.btn-warning{background-color:var(--color-warning-500);color:var(--text-inverse)}.btn-warning:hover:not(:disabled){background-color:var(--color-warning-600);transform:translateY(-1px)}.btn-icon{padding:0;width:var(--btn-height-md);height:var(--btn-height-md);border-radius:var(--radius-lg)}.btn-icon.btn-sm{width:var(--btn-height-sm);height:var(--btn-height-sm)}.btn-icon.btn-lg{width:var(--btn-height-lg);height:var(--btn-height-lg)}.btn-full{width:100%}.btn-group{display:inline-flex;gap:0}.btn-group .btn{border-radius:0;margin-left:-1px}.btn-group .btn:first-child{border-radius:var(--radius-lg) 0 0 var(--radius-lg);margin-left:0}.btn-group .btn:last-child{border-radius:0 var(--radius-lg) var(--radius-lg) 0}.badge{display:inline-flex;align-items:center;justify-content:center;padding:var(--badge-padding);font-size:var(--badge-font-size);font-weight:var(--font-semibold);border-radius:var(--badge-radius);line-height:1}.badge-primary{background-color:var(--color-primary-100);color:var(--color-primary-700)}.badge-success{background-color:var(--color-success-100);color:var(--color-success-700)}.badge-warning{background-color:var(--color-warning-100);color:var(--color-warning-700)}.badge-error{background-color:var(--color-error-100);color:var(--color-error-700)}.badge-info{background-color:var(--color-info-100);color:var(--color-info-700)}.badge-neutral{background-color:var(--color-neutral-100);color:var(--color-neutral-700)}.badge-solid-primary{background-color:var(--color-primary-500);color:var(--text-inverse)}.badge-solid-success{background-color:var(--color-success-500);color:var(--text-inverse)}.badge-solid-warning{background-color:var(--color-warning-500);color:var(--text-inverse)}.badge-solid-error{background-color:var(--color-error-500);color:var(--text-inverse)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:capitalize}.status-pending{background-color:var(--color-warning-100);color:var(--color-warning-700)}.status-published{background-color:var(--color-success-100);color:var(--color-success-700)}.status-rejected{background-color:var(--color-error-100);color:var(--color-error-700)}.status-draft{background-color:var(--color-neutral-100);color:var(--color-neutral-600);border:1px dashed var(--color-neutral-300)}.card{background-color:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--card-radius);padding:var(--card-padding);box-shadow:var(--card-shadow);transition:var(--transition-all)}.card-hover:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.card-header{padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.card-header h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-normal);color:var(--text-primary);margin:0}.card-footer{padding-top:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-3)}.input{width:100%;height:var(--input-height-md);padding:var(--input-padding);font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);background-color:var(--bg-primary);border:var(--input-border-width) solid var(--border-default);border-radius:var(--radius-lg);transition:var(--transition-all)}.input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-primary-100)}.input::placeholder{color:var(--text-tertiary)}.input:disabled{background-color:var(--bg-secondary);color:var(--text-tertiary);cursor:not-allowed}.input-error{border-color:var(--color-error-500)}.input-error:focus{box-shadow:0 0 0 3px var(--color-error-100)}.input-sm{height:var(--input-height-sm);font-size:var(--text-xs)}.input-lg{height:var(--input-height-lg);font-size:var(--text-base)}.textarea{min-height:100px;height:auto;resize:vertical}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2378716c' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;background-size:12px;padding-right:var(--space-8);cursor:pointer}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);margin-bottom:var(--space-1)}.form-label-required:after{content:" *";color:var(--color-error-500)}.form-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.form-error{font-size:var(--text-xs);color:var(--color-error-500);margin-top:var(--space-1)}.table{width:100%;border-collapse:collapse}.table th{padding:var(--space-3) var(--space-4);text-align:left;font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wider);background-color:var(--table-header-bg);border-bottom:1px solid var(--table-border)}.table td{padding:var(--space-4);font-size:var(--text-sm);color:var(--text-primary);border-bottom:1px solid var(--border-subtle);vertical-align:top}.table tbody tr{transition:var(--transition-all)}.table tbody tr:hover{background-color:var(--table-row-hover)}.table tbody tr:last-child td{border-bottom:none}.alert{padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid;display:flex;align-items:flex-start;gap:var(--space-3)}.alert-icon{flex-shrink:0;width:20px;height:20px}.alert-content{flex:1}.alert-title{font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.alert-message{font-size:var(--text-sm)}.alert-info{background-color:var(--color-info-50);border-color:var(--color-info-200);color:var(--color-info-700)}.alert-success{background-color:var(--color-success-50);border-color:var(--color-success-200);color:var(--color-success-700)}.alert-warning{background-color:var(--color-warning-50);border-color:var(--color-warning-200);color:var(--color-warning-700)}.alert-error{background-color:var(--color-error-50);border-color:var(--color-error-200);color:var(--color-error-700)}.tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--border-default);padding-bottom:var(--space-1)}.tab{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-tertiary);background:transparent;border:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;cursor:pointer;transition:var(--transition-all);position:relative}.tab:hover{color:var(--text-secondary);background-color:var(--bg-secondary)}.tab.active{color:var(--color-primary-600);background-color:var(--color-primary-50)}.tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--color-primary-500)}.divider{height:1px;background-color:var(--border-default);margin:var(--space-4) 0}.divider-vertical{width:1px;height:100%;background-color:var(--border-default);margin:0 var(--space-4)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10);text-align:center}.empty-state-icon{width:64px;height:64px;color:var(--text-tertiary);margin-bottom:var(--space-4)}.empty-state-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-2)}.empty-state-message{font-size:var(--text-sm);color:var(--text-tertiary);max-width:400px;margin-bottom:var(--space-6)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-success{color:var(--color-success-600)}.text-warning{color:var(--color-warning-600)}.text-error{color:var(--color-error-600)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scrollbar-gutter:stable}@media (max-width: 480px){html,body{scrollbar-gutter:auto!important;overflow:hidden!important;height:100dvh;scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0}}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-secondary);min-height:100vh;min-width:320px}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-normal);line-height:var(--leading-tight);color:var(--text-primary);letter-spacing:var(--tracking-tight)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{margin-bottom:var(--space-4)}a{color:var(--text-link);text-decoration:none;transition:var(--transition-colors)}a:hover{color:var(--text-link-hover);text-decoration:underline}a:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}button{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:var(--leading-normal);cursor:pointer;border:none;background:none;transition:var(--transition-all)}button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-primary);border:var(--input-border-width) solid var(--border-default);border-radius:var(--radius-lg);padding:var(--input-padding);transition:border-color var(--duration-normal) var(--ease-in-out),box-shadow var(--duration-normal) var(--ease-in-out)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-primary-100)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);display:block;margin-bottom:var(--space-1)}*{scrollbar-width:thin;scrollbar-color:var(--color-neutral-300) var(--color-neutral-100)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--color-neutral-100);border-radius:var(--radius-sm)}*::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-sm);border:1px solid var(--color-neutral-100)}*::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}*::-webkit-scrollbar-corner{background:var(--color-neutral-100)}::selection{background-color:var(--color-primary-200);color:var(--color-primary-900)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-40px;left:0;background:var(--bg-brand);color:var(--text-inverse);padding:var(--space-2) var(--space-4);z-index:var(--z-max);transition:top var(--duration-fast) var(--ease-out)}.skip-link:focus{top:0}img,picture,video,canvas,svg{display:block;max-width:100%}table{border-collapse:collapse;width:100%}th{text-align:left;font-weight:var(--font-semibold)}
