@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+TC:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#080c16;--bg-secondary:#0f1524;--bg-card:#ffffff0a;--bg-card-hover:#ffffff12;--bg-sidebar:#0b111d;--bg-input:#ffffff0f;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#627084;--color-accent:#39f;--color-accent-dim:#3399ff26;--color-success:#14eba3;--color-success-dim:#14eba326;--color-danger:#ed457d;--color-danger-dim:#ed457d26;--color-warning:#f7b23b;--color-warning-dim:#f7b23b26;--color-purple:#a35de9;--color-purple-dim:#a35de926;--color-cyan:#20d3ee;--color-cyan-dim:#20d3ee26;--chart-1:#39f;--chart-2:#14eba3;--chart-3:#a35de9;--chart-4:#f7b23b;--chart-5:#ed457d;--chart-6:#20d3ee;--border-color:#ffffff0f;--border-color-hover:#ffffff1f;--shadow-card:0 4px 24px #0000004d;--shadow-card-hover:0 8px 40px #0006;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--sidebar-width:260px;--sidebar-collapsed:72px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);min-height:100dvh;font-family:Inter,Noto Sans TC,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;overflow-x:hidden}#root{min-height:100dvh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:all var(--transition-normal);min-width:0}.glass-card:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);box-shadow:var(--shadow-card-hover)}.text-accent{color:var(--color-accent)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.page-grid{gap:var(--space-lg);animation:.5s fadeIn;display:grid}.kpi-grid{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-2{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}.grid-6{gap:var(--space-lg);grid-template-columns:repeat(6,1fr);display:grid}@media (width>=1440px){.kpi-grid{grid-template-columns:repeat(6,1fr)}}@media (width<=1200px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}.grid-6{grid-template-columns:repeat(3,1fr)}}@media (width<=1024px){.kpi-grid,.grid-3,.grid-6{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.kpi-grid,.grid-2,.grid-3,.grid-4,.grid-6{grid-template-columns:1fr}}.page-header{margin-bottom:var(--space-lg)}.page-header h1{letter-spacing:-.02em;margin-bottom:var(--space-xs);align-items:center;gap:var(--space-sm);font-size:1.75rem;font-weight:700;display:flex}.page-header h1 svg{color:var(--color-accent);flex-shrink:0}.page-header p{color:var(--text-secondary);font-size:.9rem}.badge{border-radius:20px;align-items:center;gap:4px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{background:var(--color-success-dim);color:var(--color-success)}.badge-danger{background:var(--color-danger-dim);color:var(--color-danger)}.loading-skeleton{border-radius:var(--radius-lg);border:1px solid var(--border-color);background:linear-gradient(90deg,#ffffff08 0%,#ffffff14 50%,#ffffff08 100%) 0 0/800px 100%;min-height:100px;animation:1.5s linear infinite shimmer}.score-card.loading-skeleton{min-height:120px}@keyframes spin{to{transform:rotate(360deg)}}.date-picker-container{z-index:200;position:relative}.date-picker-trigger{align-items:center;gap:var(--space-sm);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);white-space:nowrap;min-height:36px;padding:7px 12px;font-family:inherit;font-size:.8rem;font-weight:500;display:flex}.date-picker-trigger:hover{color:var(--text-primary);background:#ffffff0d;border-color:#ffffff26}.date-picker-trigger.open{border-color:var(--color-accent);color:var(--text-primary)}.trigger-icon{opacity:.7;flex-shrink:0;width:14px;height:14px}.trigger-chevron{opacity:.5;width:12px;height:12px;transition:transform var(--transition-fast);flex-shrink:0}.trigger-chevron.rotated{transform:rotate(180deg)}.date-picker-popover{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:380px;animation:.2s cubic-bezier(.34,1.56,.64,1) popoverIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 16px 40px #0009,0 4px 12px #0000004d}@keyframes popoverIn{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.date-picker-overlay{display:none}.date-picker-header{padding:var(--space-md) var(--space-md) var(--space-md) var(--space-md);border-bottom:1px solid var(--border-color);background:#ffffff05;justify-content:space-between;align-items:center;display:flex}.date-picker-header h4{color:var(--text-primary);margin:0;font-size:.85rem;font-weight:600}.date-picker-close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.date-picker-close:hover{color:var(--text-primary);background:#ffffff0f}.date-picker-close svg{width:14px;height:14px}.date-picker-body-split{display:flex}.date-picker-presets{padding:var(--space-sm);border-right:1px solid var(--border-color);background:#ffffff05;flex-direction:column;min-width:120px;display:flex}.date-picker-presets button{text-align:left;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;min-height:36px;padding:8px 14px;font-family:inherit;font-size:.825rem}.date-picker-presets button:hover{color:var(--text-primary);background:#ffffff0d}.date-picker-presets button.active{background:var(--color-accent-dim);color:var(--color-accent);font-weight:600}.date-picker-custom-inputs{padding:var(--space-md);gap:var(--space-md);flex-direction:column;flex-grow:1;transition:opacity .2s;display:flex}.date-input-group{flex-direction:column;gap:6px;display:flex}.date-input-group label{color:var(--text-tertiary);font-size:.75rem;font-weight:500}.date-input-group input[type=date]{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-sm);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;transition:border-color var(--transition-fast);width:100%;padding:8px 10px;font-family:inherit;font-size:.85rem}.date-input-group input[type=date]:focus{border-color:var(--color-accent);outline:none}.date-picker-footer{padding:var(--space-md);border-top:1px solid var(--border-color);justify-content:flex-end;gap:var(--space-sm);background:#00000026;display:flex}.date-picker-footer button{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);min-height:34px;padding:7px 16px;font-family:inherit;font-size:.8rem;font-weight:500}.btn-cancel{color:var(--text-secondary);background:0 0;border:1px solid #0000}.btn-cancel:hover{color:var(--text-primary);background:#ffffff0d}.btn-apply{background:var(--color-accent);border:1px solid var(--color-accent);color:#fff}.btn-apply:hover{opacity:.9;filter:brightness(1.1)}@media (width<=768px){.date-picker-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:199;background:#0009;animation:.2s overlayFadeIn;display:block;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.date-picker-popover{min-width:unset;border-radius:var(--radius-md) var(--radius-md) 0 0;z-index:200;width:100%;max-height:85dvh;animation:.3s cubic-bezier(.34,1.56,.64,1) sheetSlideUp;position:fixed;inset:auto 0 0;overflow-y:auto}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.date-picker-body-split{flex-direction:column}.date-picker-presets{border-right:none;border-bottom:1px solid var(--border-color);min-width:unset;flex-flow:wrap;gap:6px}.date-picker-presets button{text-align:center;flex:1;min-width:80px}}.layout{min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-color);z-index:100;transition:transform var(--transition-slow);flex-direction:column;height:100dvh;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden auto}.sidebar-header{padding:var(--space-lg);border-bottom:1px solid var(--border-color);flex-shrink:0}.sidebar-brand{align-items:center;gap:var(--space-md);color:var(--text-primary);text-decoration:none;display:flex}.sidebar-logo{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--color-accent), var(--color-purple));flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.sidebar-logo svg{color:#fff;width:22px;height:22px}.sidebar-brand-text h2{letter-spacing:-.01em;font-size:1rem;font-weight:700;line-height:1.2}.sidebar-brand-text span{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem}.project-selector{padding:0 var(--space-md);margin-bottom:var(--space-md);flex-shrink:0;position:relative}.project-selector-btn{align-items:center;gap:var(--space-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);text-align:left;background:#ffffff08;padding:10px;display:flex}.project-selector-btn:hover,.project-selector-btn[aria-expanded=true]{background:#ffffff0d;border-color:#ffffff1a}.project-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.project-selector-text{flex-direction:column;flex:1;min-width:0;display:flex}.project-selector-name{white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary);font-size:.85rem;font-weight:600;overflow:hidden}.project-selector-id{color:var(--text-tertiary);font-family:monospace;font-size:.65rem}.project-selector-chevron{width:16px;height:16px;color:var(--text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.project-selector-btn[aria-expanded=true] .project-selector-chevron{transform:rotate(180deg)}.project-dropdown{top:calc(100% + 4px);left:var(--space-md);right:var(--space-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);z-index:10;flex-direction:column;gap:2px;max-height:250px;padding:6px;display:flex;position:absolute;overflow-y:auto;box-shadow:0 4px 20px #00000080}.project-dropdown-item{align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;transition:all var(--transition-fast);background:0 0;border:none;padding:8px 10px;display:flex}.project-dropdown-item:hover{color:var(--text-primary);background:#ffffff0d}.project-dropdown-item.active{background:var(--color-accent-dim);color:var(--color-accent)}.project-dropdown-name{white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:500;overflow:hidden}.project-dropdown-id{color:var(--text-tertiary);font-size:.6rem}.sidebar-nav{padding:var(--space-sm) var(--space-md);flex:1;overflow:hidden auto}.sidebar-section-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-md) var(--space-md) var(--space-sm);font-size:.65rem;font-weight:600}.nav-item{align-items:center;gap:var(--space-md);padding:10px var(--space-md);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;min-height:44px;margin-bottom:2px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{color:var(--text-primary);background:#ffffff0d}.nav-item.active{background:var(--color-accent-dim);color:var(--color-accent)}.nav-item-icon{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.nav-item-icon svg{width:18px;height:18px}.sidebar-data-status{margin-top:var(--space-lg);padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#ffffff08;flex-direction:column;gap:8px;display:flex}.data-status-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:.65rem;font-weight:600}.sidebar-status{align-items:center;gap:var(--space-sm);color:var(--text-secondary);font-size:.8rem;font-weight:500;display:flex}.status-dot{background:var(--color-success);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s infinite pulse}.status-connected .status-dot{background:var(--color-success);animation:2s infinite pulse}.status-disconnected .status-dot{background:#f48c25;animation:none}.status-checking .status-dot{background:#4781d1;animation:1s linear infinite spin}.sidebar-update-time{color:var(--text-tertiary);background:#0003;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:.7rem;display:flex}.sidebar-update-time svg{flex-shrink:0;width:14px;height:14px}.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--border-color);align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}.sidebar-user{align-items:center;gap:var(--space-sm);flex:1;min-width:0;display:flex}.sidebar-user-avatar{background:linear-gradient(135deg, var(--color-accent), var(--color-purple));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:700;display:flex}.sidebar-user-info{flex-direction:column;gap:1px;min-width:0;display:flex}.sidebar-user-email{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.sidebar-user-role{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.btn-logout{border:1px solid var(--border-color);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.btn-logout:hover{background:var(--color-danger-dim);border-color:var(--color-danger);color:var(--color-danger)}.btn-logout svg{width:16px;height:16px}.main-content{margin-left:var(--sidebar-width);flex:1;min-width:0;min-height:100dvh;overflow-x:hidden}.top-bar{padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;justify-content:space-between;align-items:center;gap:var(--space-sm);background:#0003;flex-wrap:wrap;display:flex;position:sticky;top:0}.top-bar-left{align-items:center;gap:var(--space-md);min-width:0;display:flex}.top-bar-title{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.top-bar-right{align-items:center;gap:var(--space-md);flex-shrink:0;display:flex}.date-display{align-items:center;gap:var(--space-sm);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);padding:6px 14px;font-size:.8rem;display:flex}.refresh-btn{background:var(--color-accent-dim);color:var(--color-accent);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;padding:6px 14px;font-size:.8rem;font-weight:500}.refresh-btn:hover:not(:disabled){background:var(--color-accent);color:#fff}.refresh-btn.syncing{opacity:.7;cursor:wait;background:var(--bg-input);color:var(--text-tertiary);border-color:var(--border-color)}.btn-export-ai{background:linear-gradient(135deg, var(--color-accent), var(--color-purple));color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;display:flex;box-shadow:0 4px 10px #6c5ce74d}.btn-export-ai:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px #6c5ce766}.btn-export-ai:disabled{opacity:.7;cursor:wait}.loader-spinner{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;animation:1s linear infinite spin;display:inline-block}.page-content{padding:var(--space-xl)}.menu-toggle{color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);width:44px;height:44px;transition:background var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:none}.menu-toggle:hover{background:#ffffff0f}.menu-toggle svg{width:20px;height:20px}.sidebar-overlay{z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;position:fixed;inset:0}@media (width<=768px){.sidebar{box-shadow:none;transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:4px 0 20px #0006}.main-content{margin-left:0}.menu-toggle{display:flex}.top-bar{padding:var(--space-sm) var(--space-md)}.top-bar-title{display:none}.page-content{padding:var(--space-md)}}@media (width<=1024px) and (width>=769px){.top-bar{padding:var(--space-md) var(--space-lg)}.page-content{padding:var(--space-lg)}}.login-page{background:var(--bg-primary);min-height:100dvh;padding:var(--space-md);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-bg-glow{filter:blur(120px);opacity:.12;pointer-events:none;border-radius:50%;animation:6s ease-in-out infinite pulse;position:absolute}.login-bg-glow--blue{background:var(--color-accent);width:600px;height:600px;top:-150px;left:-150px}.login-bg-glow--purple{background:var(--color-purple);width:500px;height:500px;animation-delay:3s;bottom:-100px;right:-100px}.login-card{width:100%;max-width:420px;padding:var(--space-2xl) var(--space-xl);animation:fadeInUp .5s var(--transition-slow) both;z-index:1;position:relative}.login-brand{text-align:center;margin-bottom:var(--space-xl)}.login-logo{background:var(--color-accent-dim);border:1px solid rgba(var(--color-accent), .3);border-radius:var(--radius-md);width:56px;height:56px;margin:0 auto var(--space-md);color:var(--color-accent);justify-content:center;align-items:center;display:flex}.login-logo svg{width:28px;height:28px}.login-title{letter-spacing:-.02em;margin-bottom:var(--space-xs);background:linear-gradient(135deg, var(--text-primary) 0%, var(--color-accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.75rem;font-weight:700}.login-subtitle{color:var(--text-tertiary);letter-spacing:.05em;text-transform:uppercase;font-size:.85rem}.login-form{gap:var(--space-md);flex-direction:column;display:flex}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.form-input-wrapper{align-items:center;display:flex;position:relative}.form-input-icon{width:16px;height:16px;color:var(--text-tertiary);pointer-events:none;flex-shrink:0;position:absolute;left:14px}.form-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:12px 14px 12px 42px;font-family:inherit;font-size:.95rem}.form-input::placeholder{color:var(--text-tertiary)}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim);background:#ffffff14}.form-input:disabled{opacity:.5;cursor:not-allowed}.form-input--password{padding-right:44px}.form-input-toggle{cursor:pointer;color:var(--text-tertiary);transition:color var(--transition-fast);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:12px}.form-input-toggle:hover{color:var(--text-secondary)}.form-input-toggle svg{width:16px;height:16px}.login-error{align-items:center;gap:var(--space-sm);background:var(--color-danger-dim);border-radius:var(--radius-sm);color:var(--color-danger);border:1px solid #dc506e4d;padding:10px 14px;font-size:.875rem;animation:.2s fadeIn;display:flex}.login-error svg{flex-shrink:0;width:16px;height:16px}.btn-login{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;padding:13px var(--space-md);margin-top:var(--space-xs);background:var(--color-accent);color:#080c16;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;font-family:inherit;font-size:.95rem;font-weight:600;display:flex}.btn-login:hover:not(:disabled){background:#66b3ff;transform:translateY(-1px);box-shadow:0 4px 16px #3399ff59}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.6;cursor:not-allowed}.btn-login svg{width:18px;height:18px}.btn-spinner{border:2px solid #00000040;border-top-color:#000c;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.login-footer{text-align:center;margin-top:var(--space-lg);color:var(--text-tertiary);font-size:.78rem}.auth-loading-screen{justify-content:center;align-items:center;gap:var(--space-md);background:var(--bg-primary);min-height:100dvh;color:var(--text-secondary);flex-direction:column;font-size:.9rem;display:flex}.auth-loading-spinner{border:3px solid var(--border-color);border-top-color:var(--color-accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}
