.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);padding:var(--space-2)var(--space-4);font-family:inherit;font-weight:var(--font-medium);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);background:0 0;border:1px solid #0000;line-height:1.5;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.btn--primary{background:var(--color-primary-surface);color:var(--color-text-inverse);border-color:var(--color-primary-surface)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--secondary{color:var(--color-primary);border-color:var(--color-primary);background:0 0}.btn--secondary:hover:not(:disabled){background:var(--btn-secondary-hover)}.btn--ghost{color:var(--color-primary);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--btn-ghost-hover)}.btn--danger{background:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn--danger-ghost{color:var(--color-danger);background:0 0;border-color:#0000}.btn--danger-ghost:hover:not(:disabled){background:var(--btn-danger-ghost-hover)}.btn--cancel{background:var(--btn-cancel-bg);color:var(--btn-cancel-text);border-color:var(--btn-cancel-border)}.btn--cancel:hover:not(:disabled){background:var(--btn-cancel-hover)}@media (prefers-reduced-motion:reduce){.btn{transition:none}}
.form-section{gap:var(--space-4);border:none;flex-direction:column;margin:0;padding:0;display:flex}.form-section+.form-section{margin-top:var(--space-6)}.form-section__legend{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--shell-text)}.form-section__legend--hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;position:absolute;overflow:hidden}
.date-picker{flex-shrink:0;display:inline-flex;position:relative}.date-picker__trigger{color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;padding:var(--space-1)var(--space-2);border-radius:var(--radius-sm);white-space:nowrap;transition:color var(--transition-fast),background var(--transition-fast);background:0 0;border:1px solid #0000}.date-picker__trigger:hover{background:var(--color-surface-hover)}.date-picker__trigger:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.date-picker__trigger--today{color:var(--color-primary);font-weight:var(--font-medium)}.date-picker__trigger--past{color:var(--color-danger-text);background:var(--color-danger-bg);border:1px solid var(--color-danger-border)}.date-picker__dropdown{z-index:100;margin-top:var(--space-1);background:var(--color-surface);border:1px solid var(--input-border);border-radius:var(--radius-md);padding:var(--space-2);width:260px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.date-picker__quick{gap:var(--space-1);margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--input-border);display:flex}.date-picker__quick-btn{padding:var(--space-1)var(--space-2);background:var(--color-surface-hover);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast);border:none;flex:1}.date-picker__quick-btn:hover{background:var(--color-primary);color:var(--white)}.date-picker__quick-btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.date-picker__nav{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.date-picker__nav-btn{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-base);background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;line-height:1;display:flex}.date-picker__nav-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.date-picker__nav-btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.date-picker__nav-titles{align-items:center;gap:2px;display:flex}.date-picker__nav-title{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;padding:var(--space-1)var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none}.date-picker__nav-title:hover{background:var(--color-surface-hover)}.date-picker__nav-title:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.date-picker__year-input{width:70px;padding:var(--space-1)var(--space-2);border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);text-align:center;-moz-appearance:textfield;outline:none}.date-picker__year-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.date-picker__year-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.date-picker__year-input:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.date-picker__weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:2px;display:grid}.date-picker__weekday{text-align:center;color:var(--color-text-muted);padding:var(--space-1)0;-webkit-user-select:none;user-select:none;font-size:.6875rem}.date-picker__grid{grid-template-columns:repeat(7,1fr);display:grid}.date-picker__cell{width:32px;height:32px;color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;margin:0 auto;display:flex}.date-picker__cell:hover{background:var(--color-surface-hover)}.date-picker__cell:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.date-picker__cell--empty{cursor:default}.date-picker__cell--empty:hover{background:0 0}.date-picker__cell--today{color:var(--color-primary);font-weight:var(--font-medium)}.date-picker__cell--selected{background:var(--color-primary);color:var(--white);font-weight:var(--font-medium)}.date-picker__cell--selected:hover{background:var(--color-primary);opacity:.9}.date-picker__months{gap:var(--space-1);grid-template-columns:repeat(3,1fr);display:grid}.date-picker__month-btn{padding:var(--space-2)var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none}.date-picker__month-btn:hover{background:var(--color-surface-hover)}.date-picker__month-btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.date-picker__month-btn--current{color:var(--color-primary);font-weight:var(--font-medium)}.date-picker__years{gap:var(--space-1);grid-template-columns:repeat(5,1fr);display:grid}.date-picker__year-btn{padding:var(--space-2)var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none}.date-picker__year-btn:hover{background:var(--color-surface-hover)}.date-picker__year-btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.date-picker__year-btn--current{color:var(--color-primary);font-weight:var(--font-medium)}.date-picker__time{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2)var(--space-3);border-top:1px solid var(--input-border);display:flex}.date-picker__time-select{padding:var(--space-1)var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm)}.date-picker__time-select:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.date-picker__time-separator{color:var(--color-text-secondary);font-weight:var(--font-bold)}.date-picker__footer{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--input-border);text-align:center}.date-picker__clear-btn{color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;padding:var(--space-1)var(--space-3);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast);background:0 0;border:none}.date-picker__clear-btn:hover{color:var(--color-danger-text);background:var(--color-danger-bg)}.date-picker__clear-btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}@media (prefers-reduced-motion:reduce){.date-picker__trigger,.date-picker__quick-btn,.date-picker__cell,.date-picker__clear-btn{transition:none}}
@property --angle{syntax:"<angle>";inherits:false;initial-value:0deg}.brand-panel{background:linear-gradient(var(--angle),var(--auth-gradient-1),var(--auth-gradient-2),var(--auth-gradient-3),var(--auth-gradient-4));animation:8s ease-in-out infinite alternate brand-panel-gradient;display:none;position:relative;overflow:hidden}@keyframes brand-panel-gradient{0%{--angle:0deg}50%{--angle:180deg}to{--angle:360deg}}@supports not (background:paint(something)){.brand-panel{background:linear-gradient(135deg,var(--auth-gradient-1),var(--auth-gradient-2),var(--auth-gradient-3),var(--auth-gradient-4));background-size:200% 200%;animation:6s infinite brand-panel-shift}@keyframes brand-panel-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}}@media (min-width:1024px){.brand-panel{flex:1;justify-content:center;align-items:center;display:flex}}.brand-panel__branding{align-items:center;gap:var(--space-5);z-index:1;flex-direction:column;display:flex;position:relative}.brand-panel__icon{border:2.5px solid #ffffffd9;border-radius:12px;width:48px;height:48px;transform:rotate(45deg)}.brand-panel__name{font-size:var(--text-3xl);color:#fffffff2;letter-spacing:.05em;-webkit-user-select:none;user-select:none;margin:0;font-weight:700}@media (prefers-reduced-motion:reduce){.brand-panel{animation:none}}
.auth-layout{background:var(--color-bg);flex-direction:column;min-height:100dvh;display:flex}.auth-layout__form-panel{padding:var(--space-4);flex:1;justify-content:center;align-items:center;display:flex}@media (min-width:640px){.auth-layout__form-panel{padding:var(--space-8)}}@media (min-width:1024px){.auth-layout{flex-direction:row}.auth-layout__form-panel{background:linear-gradient(135deg,var(--auth-gradient-2),var(--auth-gradient-3),var(--auth-gradient-4))}}
.auth-card{width:100%;max-width:var(--auth-card-max-width);padding:var(--space-6);animation:auth-card-enter .4s var(--ease-out-expo)}.auth-card__title{letter-spacing:-.02em;color:var(--color-text-primary);margin-bottom:var(--space-2);font-size:clamp(1.5rem,4vw,1.875rem);font-weight:700}.auth-card__subtitle{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-8)}.auth-card form{gap:var(--space-4);flex-direction:column;display:flex}.auth-card__footer{text-align:center;margin-top:var(--space-6);font-size:var(--text-sm);color:var(--color-text-muted)}.auth-card__link{color:var(--color-primary);transition:color var(--transition-fast);font-weight:500;text-decoration:none}.auth-card__link:hover{color:var(--color-primary-hover);text-decoration:underline}.auth-card__forgot-link{text-align:center;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;text-decoration:none;display:block}.auth-card__forgot-link:hover{color:var(--color-primary)}.auth-card__loader{padding:var(--space-8)0;justify-content:center;display:flex}.auth-card__loader:after{content:"";border:2.5px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite auth-card-spin}@keyframes auth-card-spin{to{transform:rotate(360deg)}}@keyframes auth-card-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (min-width:640px){.auth-card{padding:var(--auth-card-padding);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--auth-card-radius);box-shadow:var(--auth-card-shadow)}}@media (min-width:1024px){.auth-card{-webkit-backdrop-filter:blur(12px)saturate(180%);background:#ffffff1f;border:1px solid #ffffff26;box-shadow:0 8px 32px #0000001f,inset 0 1px #ffffff1a}.auth-card__title{color:var(--white)}.auth-card__subtitle{color:#ffffffb3}.auth-card__footer{color:#fff9}.auth-card__link{color:#ffffffe6}.auth-card__link:hover{color:var(--white)}.auth-card__forgot-link{color:#fff9}.auth-card__forgot-link:hover{color:#ffffffe6}.auth-card__loader:after{border-color:#ffffffe6 #fff3 #fff3}[data-theme=dark] .auth-card{background:#00000040;border:1px solid #ffffff1a}}@media (prefers-reduced-motion:reduce){.auth-card,.auth-card__loader:after{animation:none}}
.form-field{gap:var(--space-2);flex-direction:column;display:flex}@keyframes form-field-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.form-field label{font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:.01em;font-weight:500}.form-field__required{color:var(--color-danger-text);margin-left:2px}.form-field input{padding:var(--space-2)var(--space-3);border:1px solid var(--input-border);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--input-bg);color:var(--color-text-primary);transition:border-color var(--transition-normal),box-shadow var(--transition-normal),background-color var(--transition-normal)}.form-field input:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.form-field input::placeholder{color:var(--color-text-muted)}.form-field input:user-invalid{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef444426}.form-field input[aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef444426}.form-field input:disabled{opacity:.6;cursor:not-allowed}.form-field__error{color:var(--color-danger-text);font-size:var(--text-sm);animation:.2s ease-out form-field-error-enter}@keyframes form-field-error-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auth-card .form-field input{height:var(--auth-input-height);padding:0 var(--space-4);border-radius:var(--auth-input-radius);border-width:1.5px}.auth-card .form-field input:focus{border-color:var(--input-focus);box-shadow:0 0 0 3px var(--auth-input-focus-ring);outline:none}.auth-card .form-field{animation:.3s ease-out both form-field-enter}.auth-card .form-field:first-child{animation-delay:.1s}.auth-card .form-field:nth-child(2){animation-delay:.15s}.auth-card .form-field:nth-child(3){animation-delay:.2s}.auth-card .form-field:nth-child(4){animation-delay:.25s}@media (min-width:1024px){.auth-card .form-field label{color:#fffc}.auth-card .form-field input{color:var(--white);background:#ffffff1a;border-color:#fff3}.auth-card .form-field input::placeholder{color:#fff6}.auth-card .form-field input:focus{box-shadow:0 0 0 3px var(--auth-input-focus-ring);border-color:#fff6}.auth-card .form-field__error{color:var(--color-error-text)}}@media (prefers-reduced-motion:reduce){.auth-card .form-field{opacity:1;animation:none}.form-field__error{animation:none}}
.submit-button{width:100%;font-size:var(--text-base);font-weight:var(--font-semibold);letter-spacing:.01em;cursor:pointer;border:none;position:relative;overflow:hidden}.submit-button--primary{width:auto;padding:var(--space-2)var(--space-4);background:var(--color-primary-surface);color:var(--color-text-inverse);border:1px solid var(--color-primary-surface);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.submit-button--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.submit-button--primary:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.submit-button--primary:disabled{opacity:.5;cursor:not-allowed}.submit-button--auth{height:var(--auth-input-height);background:var(--auth-btn-gradient);color:var(--white);border-radius:var(--auth-input-radius);transition:transform var(--transition-normal),box-shadow var(--transition-normal),filter var(--transition-normal);box-shadow:var(--auth-btn-shadow)}.submit-button--auth:hover:not(:disabled){box-shadow:var(--auth-btn-shadow-hover);filter:brightness(1.08);transform:translateY(-1px)}.submit-button--auth:active:not(:disabled){box-shadow:var(--auth-btn-shadow);filter:brightness(.95);transform:translateY(0)}.submit-button--auth:disabled{opacity:.55;cursor:not-allowed;filter:saturate(.5);box-shadow:none}.submit-button--auth:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.submit-button--auth:hover:not(:disabled):after{left:100%}.submit-button--loading{pointer-events:none;color:#0000}.submit-button--loading:before{content:"";border:2px solid #ffffff4d;border-top-color:var(--white);border-radius:50%;width:20px;height:20px;margin:-10px 0 0 -10px;animation:.6s linear infinite submit-button-spin;position:absolute;top:50%;left:50%}@keyframes submit-button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.submit-button--primary,.submit-button--auth{transition:none}.submit-button--auth:hover:not(:disabled){transform:none}.submit-button--auth:after{display:none}.submit-button--loading:before{border:2px solid var(--white);animation:none}}
.auth-error-message{padding:var(--space-3)var(--space-4);background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--auth-input-radius);color:var(--color-danger-text);font-size:var(--text-sm);animation:.4s auth-error-shake}@keyframes auth-error-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@media (min-width:1024px){.auth-error-message{color:var(--color-error-text);background:#ef444426;border-color:#ef44444d}}@media (prefers-reduced-motion:reduce){.auth-error-message{animation:none}}
.sidebar-shell{width:var(--shell-sidebar-width);background:var(--shell-sidebar-bg);height:100dvh;color:var(--shell-sidebar-text);border-right:1px solid var(--shell-sidebar-border);flex-direction:column;display:none}.sidebar-shell--open{z-index:200;display:flex;position:fixed;top:0;left:0}.sidebar-shell__nav{flex:1;overflow-y:auto}.sidebar-shell__footer{border-top:1px solid var(--shell-sidebar-border);padding:var(--space-3);margin-top:auto}.sidebar-shell__backdrop{background:var(--color-backdrop);z-index:199;position:fixed;inset:0}@media (min-width:1024px){.sidebar-shell{display:flex;position:fixed;top:0;left:0}.sidebar-shell--open{z-index:unset}.sidebar-shell__backdrop{display:none}}
.sidebar-header{align-items:center;gap:var(--space-3);padding:var(--space-4)var(--space-4)var(--space-3);display:flex}.sidebar-header__icon{background:linear-gradient(135deg,var(--teal-400),var(--teal-700));border-radius:6px;flex-shrink:0;width:24px;height:24px;transform:rotate(45deg)}.sidebar-header__text{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--shell-sidebar-text)}.sidebar-header__actions{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}
.sidebar-footer__skeleton{align-items:center;gap:var(--space-3);padding:var(--space-3);display:flex}.sidebar-footer__skeleton-avatar{border-radius:var(--radius-full);background:var(--color-skeleton);width:32px;height:32px;animation:1.5s ease-in-out infinite skeleton-pulse}.sidebar-footer__skeleton-text{border-radius:var(--radius-sm);background:var(--color-skeleton);width:120px;height:12px;animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion:reduce){.sidebar-footer__skeleton-avatar,.sidebar-footer__skeleton-text{animation:none}}
.skip-link{top:-100%;left:var(--space-4);padding:var(--space-2)var(--space-4);background:var(--shell-sidebar-bg);color:var(--shell-sidebar-text);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);text-decoration:none;position:fixed}.skip-link:focus-visible{top:var(--space-4);z-index:600;outline:2px solid var(--color-focus-ring);outline-offset:2px}
.theme-toggle{border-radius:var(--radius-md);cursor:pointer;width:2rem;height:2rem;color:var(--shell-sidebar-text);transition:background-color var(--transition-normal),color var(--transition-normal);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{background:var(--shell-sidebar-hover);color:var(--shell-sidebar-active)}.theme-toggle:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.theme-toggle__icon{font-size:var(--text-base);justify-content:center;align-items:center;line-height:1;display:flex}
.user-menu{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);transition:background-color var(--transition-normal);display:flex}.user-menu:hover{background:var(--shell-sidebar-hover)}.user-menu__avatar{border-radius:var(--radius-full);background:linear-gradient(135deg,var(--teal-400),var(--teal-700));width:32px;height:32px;color:var(--white);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.02em;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.user-menu__avatar img{object-fit:cover;width:100%;height:100%}.user-menu__info{flex-direction:column;flex:1;min-width:0;display:flex}.user-menu__name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--shell-sidebar-text);text-overflow:ellipsis;white-space:nowrap;line-height:1.3;overflow:hidden}.user-menu__email{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;line-height:1.3;overflow:hidden}.user-menu__actions{flex-shrink:0;align-items:center;display:flex}.user-menu__logout{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);font-size:var(--text-sm);border-radius:var(--radius-sm);transition:color var(--transition-normal);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:28px;min-height:28px;display:flex}.user-menu__logout:hover{color:var(--shell-sidebar-text)}.user-menu__logout:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.user-menu__logout:disabled{opacity:.5;cursor:not-allowed}
.mobile-header{z-index:100;align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);background:var(--shell-sidebar-bg);color:var(--shell-sidebar-text);border-bottom:1px solid var(--shell-sidebar-border);display:flex;position:sticky;top:0}.mobile-header__hamburger{min-width:44px;min-height:44px;color:inherit;font-size:var(--text-2xl);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.mobile-header__status{pointer-events:none;position:absolute;top:4px;right:4px}.mobile-header__hamburger:hover{background:var(--shell-sidebar-hover)}.mobile-header__hamburger:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.mobile-header__title{font-size:var(--text-lg);font-weight:var(--font-semibold);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;overflow:hidden}@media (min-width:1024px){.mobile-header{display:none}}
.shell-card{background:var(--shell-card-bg);border-radius:var(--shell-card-radius);box-shadow:var(--shadow-md);padding:var(--space-4);transition:box-shadow var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-normal);border:1px solid #0000;flex-direction:column;display:flex}.shell-card--hoverable{cursor:pointer}.shell-card--hoverable:hover{box-shadow:var(--shadow-lg);border-color:var(--shell-border)}.shell-card--hoverable:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.shell-card--compact .shell-card__footer{display:none}.shell-card--disabled{opacity:.5;pointer-events:none}.shell-card__header{margin-bottom:var(--space-3)}.shell-card__body{flex:1}.shell-card__footer{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--shell-border)}a.shell-card{color:inherit;flex-direction:column;text-decoration:none;display:flex}@media (prefers-reduced-motion:reduce){.shell-card,.shell-card--hoverable:hover{transition:none}}
.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-header__title{font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--shell-text);margin:0;line-height:1.3}.page-header__back{margin-bottom:var(--space-2)}.page-header__action{flex-shrink:0}
.status-badge{align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap;border-radius:6px;padding:2px 8px;line-height:1.5;display:inline-flex}.status-badge__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-badge--ready{background:var(--status-ready-bg);color:var(--green-500)}.status-badge--ready .status-badge__dot{background:var(--green-500)}.status-badge--pending{background:var(--status-pending-bg);color:var(--amber-500)}.status-badge--pending .status-badge__dot{background:var(--amber-500)}.status-badge--error{background:var(--status-error-bg);color:var(--red-500)}.status-badge--error .status-badge__dot{background:var(--red-500)}.status-badge--neutral{background:var(--status-neutral-bg);color:var(--gray-500)}.status-badge--neutral .status-badge__dot{background:var(--gray-500)}.status-badge--dot-only .status-badge__text{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;position:absolute;overflow:hidden}
.toast-container{top:var(--space-4);right:var(--space-4);z-index:400;gap:var(--space-2);pointer-events:none;max-width:400px;width:calc(100% - var(--space-4)*2);flex-direction:column;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-3);padding:var(--space-3)var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:var(--font-medium);pointer-events:auto;transition:opacity var(--transition-normal);border:1px solid #0000;line-height:1.5;animation:.3s ease-out toast-slide-in;display:flex}.toast--dismissing{opacity:0}.toast--success{background:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}.toast--error{background:var(--color-danger-bg);color:var(--color-danger-text);border-color:var(--color-danger-border)}.toast--warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:var(--color-warning-border)}.toast--info{background:var(--color-info-bg);color:var(--color-info-text);border-color:var(--color-info-border)}.toast__message{word-break:break-word;flex:1}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.toast{transition:none;animation:none}}
.empty-state{text-align:center;padding:var(--space-8)var(--space-4);justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.empty-state__icon{margin-bottom:var(--space-2);font-size:3rem;line-height:1}.empty-state__title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--shell-text);margin:0;line-height:1.3}.empty-state__description{font-size:var(--text-sm);color:var(--shell-text-secondary);max-width:320px;margin:0;line-height:1.5}.empty-state__action{margin-top:var(--space-2)}
.skeleton-card{background:var(--color-skeleton);border-radius:var(--shell-card-radius);padding:var(--space-4);gap:var(--space-3);flex-direction:column;animation:1.5s ease-in-out infinite skeleton-shimmer;display:flex}.skeleton-card__line{background:var(--color-skeleton);border-radius:var(--radius-sm);opacity:.7;height:1rem}.skeleton-card__line--title{width:60%;height:1.25rem}.skeleton-card__line--text{width:100%}.skeleton-card__line--short{width:40%}@keyframes skeleton-shimmer{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (prefers-reduced-motion:reduce){.skeleton-card{animation:none}}
.http-error-page{padding:var(--space-4)0}.http-error-page__details{max-width:600px;margin:var(--space-4)auto 0;padding:0 var(--space-4)}.http-error-page__details-summary{font-size:var(--text-sm);color:var(--shell-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.http-error-page__details-summary:hover{color:var(--shell-text)}.http-error-page__details-summary:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.http-error-page__details-content{margin-top:var(--space-2);padding:var(--space-3);background:var(--shell-card-bg);border:1px solid var(--shell-border);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--shell-text-secondary);white-space:pre-wrap;word-break:break-word;overflow-x:auto}
.offline-banner{align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);margin-bottom:var(--space-4);background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.5;display:flex}.offline-banner--dismissing{opacity:0;transition:opacity var(--transition-normal)}.offline-banner__icon{font-size:var(--text-base);flex-shrink:0}.offline-banner__message{flex:1}.offline-banner__close{border-radius:var(--radius-sm);width:1.5rem;height:1.5rem;color:var(--color-warning-text);font-size:var(--text-lg);cursor:pointer;opacity:.7;transition:opacity var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.offline-banner__close:hover{opacity:1}.offline-banner__close:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}@media (prefers-reduced-motion:reduce){.offline-banner--dismissing{transition:none}}
.confirm-dialog{z-index:500;animation:confirm-dialog-enter var(--transition-fast);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog__backdrop{background:var(--color-backdrop);z-index:1;animation:confirm-dialog-backdrop-enter var(--transition-fast);position:fixed;inset:0}.confirm-dialog__panel{z-index:500;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-8)var(--space-8)var(--space-6);width:min(420px,calc(100vw - var(--space-8)*2));max-width:100%;position:relative}.confirm-dialog__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2)0}.confirm-dialog__message{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-5)0;line-height:1.5}.confirm-dialog__actions{justify-content:flex-end;gap:var(--space-3);display:flex}@keyframes confirm-dialog-enter{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-backdrop-enter{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.confirm-dialog,.confirm-dialog__backdrop{animation:none}}
