:root{--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#dbeafe;--color-success:#10b981;--color-success-hover:#059669;--color-success-light:#dcfce7;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-danger-light:#fef2f2;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-purple:#8b5cf6;--color-purple-hover:#7c3aed;--color-purple-light:#ede9fe;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-background:#f6f7fb;--color-card-background:#fff;--color-border:#e5e7eb;--color-border-light:#f0f0f2;--color-text:#213547;--color-text-muted:#6b7280;--color-text-light:#9ca3af;--spacing-xs:2px;--spacing-sm:4px;--spacing-md:8px;--spacing-lg:12px;--spacing-xl:16px;--spacing-xxl:24px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:13px;--font-size-lg:14px;--font-size-xl:16px;--font-size-xxl:18px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--shadow-2xl:0 25px 50px -12px #00000040;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--z-dropdown:100;--z-sticky:200;--z-modal:1000;--z-tooltip:1100;--icon-size-sm:16px;--icon-size-md:20px;--input-height-sm:28px;--input-height-md:32px;--button-height-sm:28px;--button-height-md:32px;--icon-size-base:20px;--icon-size-lg:24px;--icon-size-xl:32px;--btn-height-sm:28px;--btn-height-base:32px;--btn-height-lg:36px;--btn-padding-sm:4px 6px;--btn-padding-base:6px 10px;--btn-padding-lg:8px 12px;--btn-border-radius:6px;--btn-primary-bg:#3b82f6;--btn-primary-hover:#2563eb;--btn-primary-text:#fff;--btn-secondary-bg:transparent;--btn-secondary-hover:#e5e7eb;--btn-secondary-text:#6b7280;--btn-success-bg:#10b981;--btn-success-hover:#059669;--btn-success-text:#fff;--btn-danger-bg:#ef4444;--btn-danger-hover:#dc2626;--btn-danger-text:#fff;--btn-warning-bg:#f59e0b;--btn-warning-hover:#d97706;--btn-warning-text:#fff;--btn-light-bg:#f3f4f6;--btn-light-hover:#e5e7eb;--btn-light-text:#374151;--btn-ghost-bg:transparent;--btn-ghost-hover:#f3f4f6;--btn-ghost-text:#374151;--btn-purple-bg:#8b5cf6;--btn-purple-hover:#7c3aed;--btn-purple-text:#fff}@keyframes btn-spin{to{transform:translate(-50%,-50%)rotate(360deg)}}@media (width<=768px){.btn{min-height:44px}.btn-sm{min-height:36px}.btn-lg{min-height:52px}}.nav-section{flex-direction:column;gap:2px;display:flex}.nav-section__header{align-items:center;gap:2px;display:flex}.nav-subitems{flex-direction:column;gap:2px;padding-left:8px;display:flex}.nav-btn{text-align:left;border-radius:var(--radius-md);min-width:0;font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;color:var(--color-gray-700);transition:background var(--transition-fast), color var(--transition-fast);white-space:nowrap;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:8px;display:flex}.nav-btn:hover{background:var(--color-gray-100);color:var(--color-text)}.nav-btn--active{background:var(--color-primary-hover);color:#fff}.nav-btn--active:hover{background:var(--color-primary-hover)}.nav-btn__label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.nav-expand-btn{border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;color:var(--color-gray-500);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.nav-expand-btn:hover{background:var(--color-gray-100);color:var(--color-text)}.nav-expand-btn .material-symbols-outlined{font-size:18px}.nav-btn-sub{text-align:left;width:100%;font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);cursor:pointer;color:var(--color-gray-600);transition:background var(--transition-fast), color var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;display:flex}.nav-btn-sub:hover{background:var(--color-gray-100);color:var(--color-text)}.nav-btn-sub--active{background:var(--color-primary);color:#fff}.nav-btn-sub--active:hover{background:var(--color-primary)}.nav-btn-sub--italic{font-style:italic}.sidebar-close-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);cursor:pointer;color:var(--color-gray-600);transition:background var(--transition-fast);background:0 0;margin-left:auto;padding:4px 10px}.sidebar-close-btn:hover{background:var(--color-gray-100)}.nav-divider{border:none;border-top:1px solid var(--color-border-light);margin:4px 0}.app-sidebar:not(.app-sidebar--expanded) .nav-btn,.app-sidebar:not(.app-sidebar--expanded) .nav-btn-sub,.app-sidebar:not(.app-sidebar--expanded) .sidebar-toggle-btn{justify-content:center;padding-left:0;padding-right:0}.app-sidebar:not(.app-sidebar--expanded) .nav-subitems{padding-left:0}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#213547;background-color:#fff;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{width:100%;min-height:100vh;margin:0;padding:0}#root{text-align:left;width:100%;height:100vh;margin:0;padding:0}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}}@media (width<=768px){input,select,textarea{min-height:44px;font-size:16px}}@media (width<=640px){#root{font-size:14px}}@media (width<=480px){.hide-mobile{display:none!important}}@media (pointer:coarse){*{-webkit-tap-highlight-color:transparent}.scrollable{-webkit-overflow-scrolling:touch}}.scanner-device-id{background:var(--color-gray-50);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-gray-600);align-items:center;gap:6px;margin-bottom:16px;padding:8px 12px;display:flex}.scanner-device-id code{background:var(--color-gray-100);border-radius:var(--radius-sm);padding:1px 4px;font-family:monospace}.scanner-driver-list{flex-direction:column;gap:8px;margin:12px 0;display:flex}.scanner-driver-card{border:2px solid var(--color-gray-200);border-radius:var(--radius-lg);background:var(--color-white);cursor:pointer;text-align:left;align-items:center;gap:12px;width:100%;padding:12px 16px;transition:border-color .15s,background .15s;display:flex}.scanner-driver-card:hover{border-color:var(--color-primary-300);background:var(--color-primary-50)}.scanner-driver-card--active{border-color:var(--color-primary);background:var(--color-primary-50)}.scanner-driver-card__icon{color:var(--color-gray-500);flex-shrink:0;font-size:28px}.scanner-driver-card--active .scanner-driver-card__icon{color:var(--color-primary)}.scanner-driver-card__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.scanner-driver-card__text strong{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-gray-900)}.scanner-driver-card__text small{font-size:var(--font-size-sm);color:var(--color-gray-500);line-height:1.3}.scanner-driver-card__check{color:var(--color-primary);flex-shrink:0;font-size:22px}.scanner-driver-settings{flex-direction:column;gap:4px;display:flex}.scanner-modal-overlay{z-index:9999;background:#000000d9;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.scanner-modal{background:var(--color-gray-900);border-radius:var(--radius-xl);flex-direction:column;width:100%;max-width:720px;max-height:90vh;display:flex;position:relative;overflow:hidden}.scanner-modal__header{color:#fff;background:#00000080;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.scanner-modal__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);align-items:center;gap:8px;display:flex}.scanner-modal__close{color:#fff;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:4px;display:flex}.scanner-modal__close:hover{background:#ffffff26}.scanner-modal__body{flex:1;justify-content:center;align-items:center;min-height:300px;display:flex;position:relative}.scanner-webcam-container{color:#fff;width:100%;min-height:280px;font-size:var(--font-size-sm);background:#000;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex;position:relative}.scanner-webcam-container__icon{opacity:.3;font-size:48px}.scanner-webcam-container__hint{opacity:.5;font-size:var(--font-size-xs)}.scanner-webcam-container__diag{color:#ffc8c8d9;white-space:pre-wrap;word-break:break-word;text-align:left;background:#0006;border:1px solid #ff64644d;border-radius:4px;max-width:340px;margin-top:4px;padding:8px 10px;font-size:11px}.scanner-camera-view{background:#000;width:100%;height:320px;position:relative;overflow:hidden}.scanner-camera-view--loading{color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.scanner-camera-view__video{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.scanner-camera-view__canvas{display:none}.scanner-finder{pointer-events:none;z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.scanner-finder__box{border:2px solid #ffffffe6;border-radius:8px;width:220px;height:160px;position:relative;box-shadow:0 0 0 9999px #0000008c}.scanner-finder__box:before,.scanner-finder__box:after{content:"";border-color:var(--color-primary,#3b82f6);border-style:solid;width:20px;height:20px;position:absolute}.scanner-finder__box:before{border-width:3px 0 0 3px;border-radius:6px 0 0;top:-2px;left:-2px}.scanner-finder__box:after{border-width:0 3px 3px 0;border-radius:0 0 6px;bottom:-2px;right:-2px}.scanner-finder__hint{color:#fffc;font-size:var(--font-size-xs);text-shadow:0 1px 2px #000c}.scanner-finder__flip{color:#fff;cursor:pointer;z-index:2;background:#00000073;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:background .15s;display:flex;position:absolute;bottom:12px;right:12px}.scanner-finder__flip:hover{background:#000000a6}.header-scanner-btn{color:var(--color-gray-600);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;transition:color .15s,background .15s;display:flex;position:relative}.header-scanner-btn:hover{color:var(--color-primary);background:var(--color-primary-50)}.header-scanner-btn--active{color:var(--color-success)}.header-scanner-btn__indicator{background:var(--color-success);border:2px solid var(--color-white);border-radius:50%;width:8px;height:8px;position:absolute;top:4px;right:4px}:root{--icon-size-sm:16px;--icon-size-base:20px;--icon-size-lg:24px;--icon-size-xl:32px;--btn-height-sm:28px;--btn-height-base:32px;--btn-height-lg:36px;--btn-padding-sm:4px 6px;--btn-padding-base:6px 10px;--btn-padding-lg:8px 12px;--btn-border-radius:6px;--btn-primary-bg:#3b82f6;--btn-primary-hover:#2563eb;--btn-primary-text:#fff;--btn-secondary-bg:transparent;--btn-secondary-hover:#e5e7eb;--btn-secondary-text:#6b7280;--btn-success-bg:#10b981;--btn-success-hover:#059669;--btn-success-text:#fff;--btn-danger-bg:#ef4444;--btn-danger-hover:#dc2626;--btn-danger-text:#fff;--btn-warning-bg:#f59e0b;--btn-warning-hover:#d97706;--btn-warning-text:#fff;--btn-light-bg:#f3f4f6;--btn-light-hover:#e5e7eb;--btn-light-text:#374151;--btn-ghost-bg:transparent;--btn-ghost-hover:#f3f4f6;--btn-ghost-text:#374151;--btn-purple-bg:#8b5cf6;--btn-purple-hover:#7c3aed;--btn-purple-text:#fff}.btn{min-height:var(--btn-height-base);padding:var(--btn-padding-base);border-radius:var(--btn-border-radius);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-family:inherit;font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn:focus-visible{outline-offset:2px;outline:2px solid}.btn-sm{min-height:var(--btn-height-sm);padding:var(--btn-padding-sm);font-size:13px}.btn-lg{min-height:var(--btn-height-lg);padding:var(--btn-padding-lg);font-size:16px}.btn-primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-bg)}.btn-primary:hover:not(:disabled){background-color:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}.btn-secondary{background-color:var(--btn-secondary-bg);color:var(--btn-secondary-text);border-color:#d1d5db}.btn-secondary:hover:not(:disabled){background-color:var(--btn-secondary-hover);border-color:#d1d5db}.btn-success{background-color:var(--btn-success-bg);color:var(--btn-success-text);border-color:var(--btn-success-bg)}.btn-success:hover:not(:disabled){background-color:var(--btn-success-hover);border-color:var(--btn-success-hover)}.btn-danger{background-color:var(--btn-danger-bg);color:var(--btn-danger-text);border-color:var(--btn-danger-bg)}.btn-danger:hover:not(:disabled){background-color:var(--btn-danger-hover);border-color:var(--btn-danger-hover)}.btn-warning{background-color:var(--btn-warning-bg);color:var(--btn-warning-text);border-color:var(--btn-warning-bg)}.btn-warning:hover:not(:disabled){background-color:var(--btn-warning-hover);border-color:var(--btn-warning-hover)}.btn-light{background-color:var(--btn-light-bg);color:var(--btn-light-text);border-color:#d1d5db}.btn-light:hover:not(:disabled){background-color:var(--btn-light-hover);border-color:#9ca3af}.btn-ghost{background-color:var(--btn-ghost-bg);color:var(--btn-ghost-text);border-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--btn-ghost-hover)}.btn-purple{background-color:var(--btn-purple-bg);color:var(--btn-purple-text);border-color:var(--btn-purple-bg)}.btn-purple:hover:not(:disabled){background-color:var(--btn-purple-hover);border-color:var(--btn-purple-hover)}.btn-icon{min-width:var(--btn-height-base);gap:0;padding:8px}.btn-icon.btn-sm{min-width:var(--btn-height-sm);padding:6px}.btn-icon.btn-lg{min-width:var(--btn-height-lg);padding:10px}.btn-block{width:100%}.btn-group{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.icon-sm{font-size:var(--icon-size-sm);justify-content:center;align-items:center;line-height:1;display:inline-flex}.icon-base{font-size:var(--icon-size-base);justify-content:center;align-items:center;line-height:1;display:inline-flex}.icon-lg{font-size:var(--icon-size-lg);justify-content:center;align-items:center;line-height:1;display:inline-flex}.icon-xl{font-size:var(--icon-size-xl);justify-content:center;align-items:center;line-height:1;display:inline-flex}.btn-loading{pointer-events:none;position:relative}.btn-loading:after{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite btn-spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=768px){.btn{min-height:44px}.btn-sm{min-height:36px}.btn-lg{min-height:52px}}.account-section{max-width:600px}.account-section__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 4px}.account-section__desc{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0 0 16px}.account-section__divider{background:var(--color-border);height:1px;margin:16px 0}.passkey-list{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.passkey-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card-background);transition:border-color var(--transition-fast);align-items:center;gap:12px;padding:12px 14px;display:flex}.passkey-card:hover{border-color:var(--color-primary)}.passkey-card--primary{border-color:var(--color-primary);background:var(--color-primary-light)}.passkey-card__icon{color:var(--color-primary);flex-shrink:0;font-size:28px}.passkey-card__info{flex:1;min-width:0}.passkey-card__name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text);align-items:center;gap:6px;display:flex}.passkey-card__meta{font-size:var(--font-size-sm);color:var(--color-gray-500);margin-top:2px}.passkey-card__actions{flex-shrink:0;gap:4px;display:flex}.passkey-empty{text-align:center;color:var(--color-gray-500);padding:32px 16px}.passkey-empty__icon{color:var(--color-gray-300);margin-bottom:12px;font-size:48px}.passkey-empty__text{font-size:var(--font-size-base);margin:0}.passkey-unsupported{background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md);color:#78350f;font-size:var(--font-size-sm);align-items:flex-start;gap:10px;padding:14px;display:flex}.printing-section{flex-direction:column;display:flex}.printing-section__footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:4px;padding-top:12px;display:flex}.printing-section__star{vertical-align:middle;margin-left:4px;font-size:13px}.admin-create-form{margin-bottom:8px}.admin-table-wrapper{border-radius:var(--radius-md);border:1px solid var(--color-border);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:7px 10px}.admin-table th{background:var(--color-background);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.3px}.admin-table tbody tr:hover{background:var(--color-background)}.admin-table__row--inactive{opacity:.55}.input--inline{font-size:var(--font-size-sm);min-height:unset;width:100%;min-width:80px;height:28px;padding:3px 6px}.admin-roles-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.admin-role-card__header{align-items:center;gap:var(--spacing-sm);margin-bottom:8px;display:flex}.admin-role-card__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.admin-role-card__count{font-size:var(--font-size-xs);margin-left:auto}.admin-role-card__desc{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0 0 10px;line-height:1.5}.admin-role-card__perms{flex-direction:column;gap:4px;display:flex}.admin-perm-row{font-size:var(--font-size-sm);align-items:center;gap:6px;display:flex}.admin-perm-row__icon{font-size:16px}.admin-perm-row__icon--yes{color:var(--color-success)}.admin-perm-row__icon--no{color:var(--color-gray-400)}.admin-settings-notice{align-items:flex-start;gap:var(--spacing-sm);background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-top:12px;padding:12px;line-height:1.5;display:flex}.admin-settings-notice .material-symbols-outlined{flex-shrink:0;margin-top:1px;font-size:20px}.app-loading{background:var(--color-background);justify-content:center;align-items:center;height:100vh;display:flex}.app-loading__content{text-align:center;color:var(--color-gray-500)}.app-loading__title{font-size:var(--font-size-xxl);margin-bottom:8px}.app-layout{background:var(--color-background);flex-direction:row;height:100dvh;display:flex;overflow:hidden}.app-sidebar-container{width:var(--sidebar-collapsed-width,56px);z-index:var(--z-sticky);flex-shrink:0;position:relative}.app-sidebar-container--open{width:var(--sidebar-expanded-width,260px)}.app-sidebar-container--mobile-open{width:0}.app-sidebar{width:var(--sidebar-collapsed-width,56px);background:var(--color-card-background);border-right:1px solid var(--color-border);transition:width var(--transition-base,.2s ease);z-index:var(--z-sticky);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden}.app-sidebar--expanded{width:var(--sidebar-expanded-width,260px)}.app-sidebar--shadow{box-shadow:4px 0 16px #0000001f}.app-sidebar--mobile{transition:transform var(--transition-base,.2s ease);z-index:50;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-sidebar--mobile.app-sidebar--expanded{width:var(--sidebar-expanded-width,260px);transform:translate(0)}.sidebar-brand{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);white-space:nowrap;flex:1;overflow:hidden}.sidebar-toggle-btn{text-align:left;border-radius:var(--radius-md);width:100%;font-family:inherit;font-size:var(--font-size-base);cursor:pointer;color:var(--color-gray-700);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;align-items:center;gap:8px;padding:8px;display:flex}.sidebar-toggle-btn:hover{background:var(--color-gray-100);color:var(--color-text)}.sidebar-nav{flex-direction:column;flex:1;gap:2px;min-height:0;padding:8px;display:flex;overflow:hidden auto}.sidebar-footer{border-top:1px solid var(--color-border-light);flex-direction:column;flex-shrink:0;gap:4px;padding:8px;display:flex}.sidebar-footer__scanner{justify-content:center;display:flex}.sidebar-footer__scanner--expanded{justify-content:flex-start}.sidebar-user-icon-btn{border-radius:var(--radius-md);cursor:pointer;width:32px;height:32px;color:var(--color-gray-600);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;margin:0 auto;display:flex}.sidebar-user-icon-btn:hover{background:var(--color-gray-100);color:var(--color-text)}.app-sidebar-overlay{z-index:49;background:#0006;position:fixed;inset:0}.mobile-menu-fab{z-index:40;border:1px solid var(--color-border);background:var(--color-card-background);cursor:pointer;width:44px;height:44px;color:var(--color-gray-700);transition:background var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:12px;left:12px;box-shadow:0 2px 8px #0000001f}.mobile-menu-fab:hover{background:var(--color-gray-50)}.app-main{box-sizing:border-box;flex-direction:column;flex:1;min-width:0;padding:8px 12px;display:flex;overflow:auto}.suspense-loading{text-align:center;color:var(--color-gray-500);padding:20px}.user-menu__trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card-background);cursor:pointer;font-size:var(--font-size-base);color:var(--color-gray-700);transition:border-color var(--transition-fast), background var(--transition-fast);align-items:center;gap:8px;width:100%;padding:5px 10px;font-family:inherit;display:flex}.user-menu__trigger:hover{border-color:var(--color-gray-400);background:var(--color-gray-50)}.user-menu__avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:600;display:flex}.user-menu__name{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;overflow:hidden}.user-menu__dropdown{background:var(--color-card-background);border:1px solid var(--color-border);border-radius:var(--radius-md);z-index:80;min-width:220px;position:absolute;bottom:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 -10px 20px -5px #00000026,0 -4px 6px -2px #0000000d}.user-menu__info{border-bottom:1px solid var(--color-border-light);padding:12px 16px}.user-menu__info-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text)}.user-menu__info-email{font-size:var(--font-size-sm);color:var(--color-gray-500);margin-top:2px}.user-menu__items{padding:6px}.user-menu__item{border-radius:var(--radius-sm);width:100%;font-size:var(--font-size-base);color:var(--color-gray-700);cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-family:inherit;display:flex}.user-menu__item:hover{background:var(--color-gray-100)}.user-menu__item--danger{color:var(--color-danger)}.user-menu__item--danger:hover{background:var(--color-danger-light)}.user-menu__item-icon{flex-shrink:0;font-size:20px}.user-menu__divider{background:var(--color-border-light);height:1px;margin:4px 0}
