.language-selector{display:flex;gap:var(--spacing-sm);align-items:center}.language-button{background:transparent;border:2px solid var(--color-border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center}.language-button:hover{border-color:var(--color-border-secondary);background:var(--color-bg-tertiary);transform:scale(1.05)}.language-button:focus{outline:2px solid var(--color-accent-primary);outline-offset:2px}.language-button.active{border-color:var(--color-accent-primary);background:var(--color-accent-subtle);box-shadow:0 0 10px #4a90e24d}.flag-icon{font-size:var(--font-size-2xl);line-height:1;display:block}.authentication-container{display:flex;justify-content:center;align-items:center;min-height:80vh;padding:var(--spacing-xl)}.authentication-card{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-lg);width:100%;max-width:400px;border:1px solid var(--color-border-primary)}.authentication-card h2{margin-top:0;margin-bottom:var(--spacing-xl);text-align:center;color:var(--color-text-primary);font-size:var(--font-size-2xl)}.authentication-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-group label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.form-group input{padding:var(--spacing-md);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background-color:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:var(--font-size-base);transition:all var(--transition-fast)}.form-group input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-subtle)}.form-group input:disabled{opacity:.5;cursor:not-allowed}.error-message{padding:var(--spacing-md);background-color:#f443361a;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);text-align:center}.submit-button{padding:var(--spacing-md);background-color:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--spacing-sm)}.submit-button:hover:not(:disabled){background-color:var(--color-accent-hover);box-shadow:var(--shadow-md)}.submit-button:disabled{opacity:.5;cursor:not-allowed}.skeleton-loader{background:linear-gradient(90deg,var(--color-bg-secondary) 0%,var(--color-bg-tertiary) 50%,var(--color-bg-secondary) 100%);background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite;border-radius:var(--radius-lg);overflow:hidden;display:block;position:relative}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.skeleton-loader{animation:none;opacity:.6}}.skeleton-loader.aspect-square{aspect-ratio:1 / 1}.skeleton-loader.aspect-video{aspect-ratio:16 / 9}.skeleton-loader.skeleton-sm{height:1rem}.skeleton-loader.skeleton-md{height:2rem}.skeleton-loader.skeleton-lg{height:4rem}.skeleton-loader.skeleton-xl{height:8rem}.skeleton-loader.skeleton-circle{border-radius:var(--radius-full)}.lazy-image-container{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-bg-secondary);border-radius:var(--radius-lg)}.lazy-image-skeleton{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.lazy-image{width:100%;height:100%;object-fit:cover;transition:opacity .3s ease-out}.lazy-image.loading{opacity:0}.lazy-image.loaded{opacity:1;z-index:2}.lazy-image-error{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.error-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center;padding:var(--spacing-md)}@keyframes fade-in-image{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.lazy-image{transition:none}.lazy-image.loaded{animation:none}}.photo-card{position:relative;display:flex;flex-direction:column;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-md);aspect-ratio:1 / 1;overflow:hidden;cursor:pointer;transition:all .15s ease-in-out;isolation:isolate}.photo-card:hover,.photo-card.hovered{transform:scale(1.05) translateZ(0);box-shadow:var(--shadow-lg);border-color:var(--color-accent-primary)}.photo-card.touch-active{transform:scale(.98) translateZ(0);opacity:.9}.photo-card.long-pressing{transform:scale(1.02) translateZ(0);box-shadow:var(--shadow-lg);border-color:var(--color-accent-primary);animation:pulse-border .5s ease-in-out}@keyframes pulse-border{0%,to{border-color:var(--color-accent-primary)}50%{border-color:var(--color-accent-hover)}}.photo-card:hover .photo-card-thumbnail,.photo-card.hovered .photo-card-thumbnail{filter:brightness(1.1)}.photo-card.selected{border:3px solid var(--color-accent-primary);box-shadow:0 0 0 4px var(--color-accent-subtle)}.photo-card:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.photo-card-checkbox{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);z-index:10;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer}.photo-card-checkbox input[type=checkbox]{position:absolute;opacity:0;width:24px;height:24px;cursor:pointer}.photo-card-checkbox:before{content:"";display:block;width:24px;height:24px;border:2px solid var(--color-border-primary);border-radius:var(--radius-sm);background:var(--color-bg-tertiary);transition:all var(--transition-fast)}.photo-card-checkbox:hover:before{border-color:var(--color-accent-primary);background:var(--color-accent-subtle)}.photo-card.selected .photo-card-checkbox:before{background:var(--color-accent-primary);border-color:var(--color-accent-primary)}.checkbox-checkmark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:1}.photo-card-thumbnail{position:relative;width:100%;flex:1;overflow:hidden;border-radius:var(--radius-md);background:var(--color-bg-primary);transition:filter var(--transition-fast)}.photo-card-thumbnail .lazy-image-container{width:100%;height:100%}.photo-card-thumbnail .lazy-image,.photo-card-thumbnail .lazy-image img{width:100%;height:100%;object-fit:cover;object-position:center}.photo-card-thumbnail .lazy-image-skeleton{width:100%;height:100%}.photo-card-metadata-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.6) 50%,transparent 100%);padding:var(--spacing-md);animation:fade-in .15s ease-out;pointer-events:none}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.photo-card-metadata-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.photo-metadata-name{color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-metadata-size{color:#fffc;font-size:var(--font-size-xs)}@media (max-width: 768px){.photo-card{padding:var(--spacing-sm)}.photo-card-checkbox{min-width:44px;min-height:44px}}@media (prefers-reduced-motion: reduce){.photo-card,.photo-card-thumbnail,.photo-card-metadata-overlay{transition:none;animation:none}.photo-card:hover,.photo-card.hovered{transform:none}}@media (prefers-contrast: high){.photo-card{border-width:2px}.photo-card.selected{border-width:4px}}.photo-grid-container{width:100%}.photo-grid-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background-color:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);margin-bottom:var(--spacing-md)}.photo-grid-toolbar .selection-count{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.photo-grid{display:grid;gap:var(--spacing-md);width:100%}.photo-grid{grid-template-columns:1fr}@media (min-width: 480px){.photo-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.photo-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1200px){.photo-grid{grid-template-columns:repeat(4,1fr)}}.photo-grid>*{aspect-ratio:1 / 1}.breadcrumb{display:flex;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--color-bg-elevated) var(--color-bg-secondary)}.breadcrumb::-webkit-scrollbar{height:8px}.breadcrumb::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-md)}.breadcrumb::-webkit-scrollbar-thumb{background:var(--color-bg-elevated);border-radius:var(--radius-md)}.breadcrumb::-webkit-scrollbar-thumb:hover{background:var(--color-border-secondary)}.breadcrumb-list{display:flex;align-items:center;gap:var(--spacing-sm);list-style:none;margin:0;padding:0;white-space:nowrap}.breadcrumb-list-item{display:inline-flex;align-items:center;gap:var(--spacing-sm)}.breadcrumb-segment{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--spacing-sm) var(--spacing-md);color:var(--color-accent-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;text-align:center}.breadcrumb-segment:hover:not(.active):not(:disabled){background:var(--color-accent-subtle);color:var(--color-accent-hover)}.breadcrumb-segment:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.breadcrumb-segment:active:not(.active):not(:disabled){transform:scale(.95)}.breadcrumb-segment.active{color:var(--color-text-secondary);cursor:default}.breadcrumb-segment:disabled{cursor:default}.breadcrumb-separator{color:var(--color-text-tertiary);flex-shrink:0}@media (max-width: 480px){.breadcrumb{padding:var(--spacing-sm) var(--spacing-md)}.breadcrumb-segment{min-width:44px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}}@media (prefers-reduced-motion: reduce){.breadcrumb-segment{transition:none}.breadcrumb-segment:active:not(.active):not(:disabled){transform:none}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:var(--spacing-3xl);text-align:center}.empty-state-icon{color:var(--color-text-tertiary);margin-bottom:var(--spacing-xl);display:flex;align-items:center;justify-content:center}.empty-state-icon svg{width:64px;height:64px;stroke-width:2px}.empty-state-title{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-md);line-height:var(--line-height-tight)}.empty-state-description{color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:var(--line-height-normal);max-width:400px;margin-bottom:var(--spacing-xl)}.empty-state-action{margin-top:var(--spacing-md)}@media (max-width: 480px){.empty-state{padding:var(--spacing-2xl) var(--spacing-lg)}.empty-state-icon svg{width:48px;height:48px}.empty-state-title{font-size:var(--font-size-xl)}.empty-state-description{font-size:var(--font-size-sm)}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-lg);padding:var(--spacing-3xl)}.loading-spinner{color:var(--color-accent-primary);animation:loading-spin 1s linear infinite}@keyframes loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{color:var(--color-text-secondary);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);text-align:center;margin:0}@media (prefers-reduced-motion: reduce){.loading-spinner{animation:loading-pulse 1.5s ease-in-out infinite}@keyframes loading-pulse{0%,to{opacity:1}50%{opacity:.5}}}.folder-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);min-height:160px;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--transition-fast);aspect-ratio:1 / 1;position:relative}.folder-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--color-accent-primary);background:var(--color-bg-tertiary)}.folder-card.selection-mode:hover{border-color:var(--color-accent-primary);background:var(--color-accent-subtle)}.folder-card.selected{border-color:var(--color-accent-primary);border-width:2px;background:var(--color-accent-subtle);box-shadow:0 0 0 3px #3b82f61a}.folder-card:active{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.folder-card.touch-active{transform:scale(.95);opacity:.9}.folder-card:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-subtle)}.folder-card:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.folder-icon{color:var(--color-accent-primary);transition:all var(--transition-fast);flex-shrink:0}.folder-card:hover .folder-icon{transform:rotate(5deg);color:var(--color-accent-hover)}.folder-name{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);text-align:center;word-break:break-word;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:var(--line-height-tight)}@media (max-width: 480px){.folder-card{padding:var(--spacing-lg);min-height:140px}.folder-icon{width:40px;height:40px}.folder-name{font-size:var(--font-size-sm)}}@media (prefers-reduced-motion: reduce){.folder-card,.folder-icon{transition:none}.folder-card:hover,.folder-card:hover .folder-icon{transform:none}}.folder-card-checkbox{position:absolute;top:var(--spacing-sm);left:var(--spacing-sm);z-index:10;display:flex;align-items:center;justify-content:center}.folder-card-checkbox input[type=checkbox]{width:20px;height:20px;min-width:20px;min-height:20px;cursor:pointer;accent-color:var(--color-accent-primary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.folder-card-checkbox input[type=checkbox]:hover{transform:scale(1.1)}.folder-card-checkbox input[type=checkbox]:focus{outline:2px solid var(--color-accent-primary);outline-offset:2px}.file-browser{width:100%;max-width:1400px;margin:0 auto;padding:var(--spacing-lg);animation:fade-in .3s ease-out}.file-browser>.breadcrumb{margin-bottom:var(--spacing-lg)}.file-browser-content{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-xl);min-height:400px;border:1px solid var(--color-border-primary);transition:all var(--transition-normal)}.error-state{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:400px;color:var(--color-error);font-size:var(--font-size-lg);padding:var(--spacing-xl);text-align:center;gap:var(--spacing-md)}.items-grid{display:grid;gap:var(--spacing-md);width:100%;animation:grid-fade-in .4s ease-out}@keyframes grid-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.items-grid{grid-template-columns:1fr}@media (min-width: 480px){.items-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.items-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1200px){.items-grid{grid-template-columns:repeat(4,1fr)}}.section-title{color:var(--color-text-primary);font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg);font-weight:var(--font-weight-semibold);letter-spacing:-.02em}.folders-section{margin-bottom:var(--spacing-3xl);animation:section-fade-in .4s ease-out}.folders-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.photos-section{margin-top:var(--spacing-2xl);animation:section-fade-in .4s ease-out .1s;animation-fill-mode:both}@keyframes section-fade-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.photos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.selection-controls{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.selection-count{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-accent-subtle);border-radius:var(--radius-md);border:1px solid var(--color-accent-primary);animation:badge-pop-in .2s ease-out;white-space:nowrap}@keyframes badge-pop-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.selection-button{min-height:44px;min-width:44px;padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);white-space:nowrap}.selection-button:hover:not(:disabled){background-color:var(--color-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.selection-button:active:not(:disabled){transform:scale(.95)}.selection-button:disabled{background-color:var(--color-bg-elevated);color:var(--color-text-tertiary);cursor:not-allowed;opacity:.5}.selection-button:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}@media (max-width: 768px){.photos-header{flex-direction:column;align-items:flex-start}.selection-controls{width:100%;justify-content:space-between}}@media (prefers-reduced-motion: reduce){.file-browser,.items-grid,.folders-section,.photos-section,.selection-count,.selection-button{animation:none;transition:none}.selection-button:hover:not(:disabled){transform:none}.selection-button:active:not(:disabled){transform:none}}.download-manager{background-color:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm)}.download-header{margin-bottom:var(--spacing-md)}.download-title{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.download-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.format-selector{display:flex;flex-direction:column;gap:var(--spacing-xs)}.format-label{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.format-options{display:flex;gap:var(--spacing-lg)}.format-option{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;color:var(--color-text-primary);font-size:var(--font-size-sm)}.format-option input[type=radio]{cursor:pointer;width:18px;height:18px;accent-color:var(--color-accent-primary)}.format-option input[type=radio]:disabled{cursor:not-allowed;opacity:.5}.format-text{-webkit-user-select:none;user-select:none}.format-quality-label{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);margin-left:var(--spacing-xs)}.download-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);min-height:44px}.download-button:hover:not(:disabled){background-color:var(--color-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.download-button:active:not(:disabled){background-color:var(--color-accent-active);transform:translateY(0)}.download-button:disabled{background-color:var(--color-bg-elevated);color:var(--color-text-disabled);cursor:not-allowed;opacity:.5}.download-count{font-weight:var(--font-weight-medium);opacity:.9}.download-error{padding:var(--spacing-sm);background-color:#f443361a;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-xs)}.download-hint{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-style:italic;text-align:center;padding:var(--spacing-xs)}.download-progress{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border-primary)}.progress-header{display:flex;align-items:center;gap:var(--spacing-sm)}.progress-title{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.progress-details{display:flex;flex-direction:column;gap:var(--spacing-xs)}.progress-message{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0;line-height:1.5}.progress-warning{color:var(--color-accent-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin:0}.progress-spinner{width:20px;height:20px;border:3px solid var(--color-border-primary);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.progress-bar-container{position:relative;width:100%;height:24px;background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border-primary)}.progress-bar{height:100%;background:linear-gradient(90deg,var(--color-accent-primary),var(--color-accent-hover));transition:width .3s ease;border-radius:var(--radius-sm)}.progress-percentage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-shadow:0 1px 2px rgba(0,0,0,.3)}.cancel-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);align-self:flex-start}.cancel-button:hover{background-color:var(--color-error);color:#fff;border-color:var(--color-error)}.cancel-button:active{transform:translateY(1px)}.progress-text{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}@media (max-width: 768px){.download-manager{padding:var(--spacing-sm)}.format-options{flex-direction:column;gap:var(--spacing-sm)}.download-button{width:100%}}svg[class*=lucide]{color:inherit;transition:all .15s ease-in-out}button svg[class*=lucide],a svg[class*=lucide],[role=button] svg[class*=lucide]{cursor:pointer}button:hover:not(:disabled) svg[class*=lucide],a:hover svg[class*=lucide],[role=button]:hover svg[class*=lucide]{opacity:.8;transform:scale(1.05)}button:active:not(:disabled) svg[class*=lucide],a:active svg[class*=lucide],[role=button]:active svg[class*=lucide]{transform:scale(.95)}button:disabled svg[class*=lucide]{opacity:.5;cursor:not-allowed}.icon-primary{color:var(--color-accent-primary)}.icon-secondary{color:var(--color-text-secondary)}.icon-tertiary{color:var(--color-text-tertiary)}.icon-error{color:var(--color-error)}.icon-success{color:var(--color-success)}.icon-warning{color:var(--color-warning)}.icon-hover-primary:hover{color:var(--color-accent-hover)}.folder-icon{color:var(--color-accent-primary)}.breadcrumb-separator{color:var(--color-text-tertiary)}.photo-viewer-close svg,.photo-viewer-nav svg{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.photo-viewer-close:hover svg,.photo-viewer-nav:hover:not(:disabled) svg{color:var(--color-accent-primary);transform:scale(1.1)}@media (prefers-reduced-motion: reduce){svg[class*=lucide]{transition:none}button:hover:not(:disabled) svg[class*=lucide],a:hover svg[class*=lucide],[role=button]:hover svg[class*=lucide]{transform:none}button:active:not(:disabled) svg[class*=lucide],a:active svg[class*=lucide],[role=button]:active svg[class*=lucide]{transform:none}}.app-container{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg-primary)}.app-header{background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-primary);padding:var(--spacing-lg) var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:var(--z-sticky)}.header-left{display:flex;align-items:center;gap:var(--spacing-lg)}.app-logo{height:48px;width:auto;object-fit:contain}.app-title{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);margin:0}.header-right{display:flex;align-items:center;gap:var(--spacing-lg)}.user-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border-primary)}.user-icon{font-size:var(--font-size-lg)}.username{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.logout-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-error);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.logout-button:hover{background-color:#d32f2f;box-shadow:var(--shadow-sm)}.logout-button:active{background-color:#b71c1c}.app-main{flex:1;padding:var(--spacing-xl);max-width:1400px;width:100%;margin:0 auto}.app-main.centered{display:flex;flex-direction:column;justify-content:center;align-items:center}.welcome-section{text-align:center;padding:var(--spacing-xl) var(--spacing-xl)}.welcome-logo{height:100px;width:auto;margin-bottom:var(--spacing-lg);object-fit:contain}.welcome-title{color:var(--color-text-primary);font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-md)}.welcome-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-lg);margin-bottom:var(--spacing-xl)}@media (max-width: 768px){.app-header{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}.header-left{width:100%;justify-content:center}.header-right{width:100%;justify-content:center;flex-wrap:wrap}.app-logo{height:36px}.app-title{font-size:var(--font-size-xl)}.app-main{padding:var(--spacing-md)}.welcome-section{padding:var(--spacing-lg) var(--spacing-md)}.welcome-logo{height:80px;margin-bottom:var(--spacing-md)}.welcome-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-sm)}.welcome-subtitle{font-size:var(--font-size-base);margin-bottom:var(--spacing-lg)}}@media (max-width: 480px){.user-info{flex-direction:column;gap:var(--spacing-xs);text-align:center}.header-right{gap:var(--spacing-sm)}}:root{--animation-duration-instant: .1s;--animation-duration-fast: .15s;--animation-duration-base: .25s;--animation-duration-slow: .35s;--ease-in-out: ease-in-out;--ease-out: ease-out;--ease-in: ease-in;--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-elastic: cubic-bezier(.175, .885, .32, 1.275);--animation-stagger-delay: 50ms}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.animate-fade-in{animation:fade-in var(--animation-duration-base) var(--ease-in-out)}.animate-fade-out{animation:fade-out var(--animation-duration-base) var(--ease-in-out)}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.animate-scale-in{animation:scale-in var(--animation-duration-base) var(--ease-smooth)}.animate-scale-out{animation:scale-out var(--animation-duration-base) var(--ease-smooth)}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.animate-slide-up{animation:slide-up var(--animation-duration-base) var(--ease-smooth)}.animate-slide-down{animation:slide-down var(--animation-duration-base) var(--ease-smooth)}.animate-slide-left{animation:slide-left var(--animation-duration-base) var(--ease-smooth)}.animate-slide-right{animation:slide-right var(--animation-duration-base) var(--ease-smooth)}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-left{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-rotate-in{animation:rotate-in var(--animation-duration-base) var(--ease-smooth)}@keyframes rotate-in{0%{opacity:0;transform:rotate(-5deg) scale(.95)}to{opacity:1;transform:rotate(0) scale(1)}}.animate-bounce{animation:bounce var(--animation-duration-slow) var(--ease-bounce)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-pulse{animation:pulse 1.5s var(--ease-in-out) infinite}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.transition-transform{transition:transform var(--animation-duration-fast) var(--ease-in-out)}.transition-transform-slow{transition:transform var(--animation-duration-slow) var(--ease-in-out)}.transition-opacity{transition:opacity var(--animation-duration-fast) var(--ease-in-out)}.transition-all{transition:transform var(--animation-duration-fast) var(--ease-in-out),opacity var(--animation-duration-fast) var(--ease-in-out),box-shadow var(--animation-duration-fast) var(--ease-in-out)}.transition-all-slow{transition:transform var(--animation-duration-slow) var(--ease-smooth),opacity var(--animation-duration-slow) var(--ease-smooth),box-shadow var(--animation-duration-slow) var(--ease-smooth)}.hover-scale:hover{transform:scale(1.05)}.hover-scale-sm:hover{transform:scale(1.02)}.hover-scale-lg:hover{transform:scale(1.1)}.hover-lift:hover{transform:translateY(-4px)}.hover-lift-sm:hover{transform:translateY(-2px)}.hover-rotate:hover{transform:rotate(5deg)}.active-scale:active{transform:scale(.95)}.active-scale-sm:active{transform:scale(.98)}.stagger-item:nth-child(1){animation-delay:calc(var(--animation-stagger-delay) * 0)}.stagger-item:nth-child(2){animation-delay:calc(var(--animation-stagger-delay) * 1)}.stagger-item:nth-child(3){animation-delay:calc(var(--animation-stagger-delay) * 2)}.stagger-item:nth-child(4){animation-delay:calc(var(--animation-stagger-delay) * 3)}.stagger-item:nth-child(5){animation-delay:calc(var(--animation-stagger-delay) * 4)}.stagger-item:nth-child(6){animation-delay:calc(var(--animation-stagger-delay) * 5)}.stagger-item:nth-child(7){animation-delay:calc(var(--animation-stagger-delay) * 6)}.stagger-item:nth-child(8){animation-delay:calc(var(--animation-stagger-delay) * 7)}.stagger-item:nth-child(9){animation-delay:calc(var(--animation-stagger-delay) * 8)}.stagger-item:nth-child(10){animation-delay:calc(var(--animation-stagger-delay) * 9)}.modal-backdrop-enter{animation:fade-in var(--animation-duration-base) var(--ease-in-out)}.modal-backdrop-exit{animation:fade-out var(--animation-duration-base) var(--ease-in-out)}.modal-content-enter{animation:modal-enter var(--animation-duration-base) var(--ease-smooth)}.modal-content-exit{animation:modal-exit var(--animation-duration-base) var(--ease-smooth)}@keyframes modal-enter{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modal-exit{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(-20px)}}.skeleton-pulse{animation:skeleton-pulse 1.5s var(--ease-in-out) infinite}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.skeleton-shimmer{animation:skeleton-shimmer 1.5s var(--ease-in-out) infinite;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.05) 50%,transparent 100%);background-size:200% 100%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner-rotate{animation:spin 1s linear infinite}.will-animate{will-change:transform,opacity}.animation-complete{will-change:auto}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.animation-paused{animation-play-state:paused}.animation-running{animation-play-state:running}.animation-delay-sm{animation-delay:var(--animation-stagger-delay)}.animation-delay-md{animation-delay:calc(var(--animation-stagger-delay) * 2)}.animation-delay-lg{animation-delay:calc(var(--animation-stagger-delay) * 3)}.focus-ring{transition:box-shadow var(--animation-duration-fast) var(--ease-in-out)}.focus-ring:focus-visible{box-shadow:0 0 0 3px var(--color-accent-subtle)}.card-hover-effect{transition:transform var(--animation-duration-fast) var(--ease-in-out),box-shadow var(--animation-duration-fast) var(--ease-in-out),border-color var(--animation-duration-fast) var(--ease-in-out)}.card-hover-effect:hover{transform:scale(1.05) translateZ(0)}.metadata-overlay-enter{animation:slide-up var(--animation-duration-base) var(--ease-smooth)}.metadata-overlay-exit{animation:slide-down var(--animation-duration-base) var(--ease-smooth)}.zoom-transition{transition:transform var(--animation-duration-slow) var(--ease-smooth)}.breadcrumb-segment-hover{transition:background-color var(--animation-duration-fast) var(--ease-in-out),color var(--animation-duration-fast) var(--ease-in-out)}.btn:active:not(:disabled),button:active:not(:disabled){transform:scale(.95);transition:transform .1s ease-out}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.5)}.loading-indicator{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.loading-spinner{width:20px;height:20px;border:2px solid var(--color-accent-subtle);border-top-color:var(--color-accent-primary);border-radius:var(--radius-full);animation:spin 1s linear infinite}.loading-spinner.small{width:16px;height:16px;border-width:2px}.loading-spinner.large{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.feedback-message{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);animation:feedback-slide-in .2s ease-out;box-shadow:var(--shadow-md)}.feedback-message-error{background-color:#f443361a;border:1px solid var(--color-error);color:var(--color-error)}.feedback-message-success{background-color:#4caf501a;border:1px solid var(--color-success);color:var(--color-success)}.feedback-message-warning{background-color:#ff98001a;border:1px solid var(--color-warning);color:var(--color-warning)}.feedback-message-info{background-color:#2196f31a;border:1px solid var(--color-info);color:var(--color-info)}.feedback-message-icon{flex-shrink:0;width:20px;height:20px}.feedback-message-content{flex:1}.feedback-message-close{flex-shrink:0;width:20px;height:20px;padding:0;background:none;border:none;color:inherit;cursor:pointer;opacity:.7;transition:opacity var(--transition-fast)}.feedback-message-close:hover{opacity:1}@keyframes feedback-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feedback-message.exiting{animation:feedback-slide-out .2s ease-in forwards}@keyframes feedback-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.feedback-container{position:fixed;top:var(--spacing-xl);right:var(--spacing-xl);z-index:var(--z-tooltip);display:flex;flex-direction:column;gap:var(--spacing-md);max-width:400px;pointer-events:none}.feedback-container>*{pointer-events:auto}.processing-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-modal-backdrop);animation:fade-in .15s ease-out}.processing-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-2xl);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl)}.processing-spinner{width:48px;height:48px;border:4px solid var(--color-accent-subtle);border-top-color:var(--color-accent-primary);border-radius:var(--radius-full);animation:spin 1s linear infinite}.processing-text{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);animation:spin .6s linear infinite;color:#fff}.interactive-element{transition:all var(--transition-fast);cursor:pointer}.interactive-element:hover:not(:disabled){transform:translateY(-1px)}.interactive-element:active:not(:disabled){transform:scale(.98)}.interactive-element:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.success-indicator{display:inline-flex;align-items:center;gap:var(--spacing-sm);color:var(--color-success);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);animation:success-pop .3s ease-out}@keyframes success-pop{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.error-indicator{display:inline-flex;align-items:center;gap:var(--spacing-sm);color:var(--color-error);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);animation:error-shake .4s ease-out}@keyframes error-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.progress-bar{width:100%;height:4px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-accent-primary);transition:width .3s ease-out;border-radius:var(--radius-full)}.progress-bar-fill.success{background:var(--color-success)}.progress-bar-fill.error{background:var(--color-error)}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}*:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px;box-shadow:0 0 0 4px var(--color-accent-subtle)}a:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px;text-decoration:underline}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:0;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-subtle)}.photo-card:focus-visible,.folder-card:focus-visible{outline:3px solid var(--color-accent-primary);outline-offset:2px;box-shadow:0 0 0 6px var(--color-accent-subtle)}.breadcrumb-segment:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px;background-color:var(--color-accent-subtle)}[role=button],[role=link],[role=tab],[role=menuitem]{cursor:pointer}*:focus:not(:focus-visible){outline:none}.skip-to-main{position:absolute;top:-40px;left:0;background:var(--color-accent-primary);color:#fff;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;border-radius:var(--radius-md);z-index:var(--z-tooltip);transition:top .2s ease-in-out}.skip-to-main:focus{top:var(--spacing-sm);outline:2px solid white;outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.skeleton-loader{animation:none!important}.photo-card:hover,.folder-card:hover{transform:none!important}.zoomable-image{transition:none!important}.photo-viewer-overlay,.photo-viewer-container{animation:none!important}}.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}.sr-only-focusable:focus,.sr-only-focusable:active{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}@media (prefers-contrast: high){.photo-card,.folder-card,.breadcrumb,.btn{border-width:2px}*:focus-visible{outline-width:3px;outline-offset:3px}body{color:#fff;background-color:#000}}button,a,input[type=checkbox],input[type=radio],.photo-card,.folder-card,.breadcrumb-segment{min-height:44px;min-width:44px}p a,span a{min-height:auto;min-width:auto;display:inline}h1{font-size:var(--font-size-4xl);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-md)}ul[role=list],ol[role=list]{list-style:none;padding:0;margin:0}nav{position:relative}main{position:relative}[aria-live=polite],[aria-live=assertive]{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}button:disabled,input:disabled,select:disabled,textarea:disabled,[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}[aria-busy=true]{position:relative}[aria-busy=true]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#0000001a;pointer-events:none}[aria-invalid=true]{border-color:var(--color-error)}[role=alert]{padding:var(--spacing-md);border-radius:var(--radius-md);background-color:#f443361a;border:1px solid var(--color-error);color:var(--color-error)}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;z-index:var(--z-modal-backdrop)}.modal-content{position:fixed;z-index:var(--z-modal)}kbd{display:inline-block;padding:2px 6px;font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--color-text-primary);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);box-shadow:0 1px 0 var(--color-border-secondary)}@media print{.photo-viewer-close,.photo-viewer-nav,.breadcrumb,button,[role=navigation]{display:none!important}body{color:#000;background-color:#fff}img{max-width:100%;page-break-inside:avoid}}:root{--color-bg-primary: #1a1a1c;--color-bg-secondary: #252527;--color-bg-tertiary: #2f2f32;--color-bg-elevated: #3a3a3d;--color-text-primary: #e8e8e8;--color-text-secondary: #b8b8ba;--color-text-tertiary: #8a8a8c;--color-text-disabled: #5a5a5c;--color-accent-primary: #4a90e2;--color-accent-hover: #5ba3f5;--color-accent-active: #3a7bc8;--color-accent-subtle: rgba(74, 144, 226, .1);--color-success: #4caf50;--color-error: #f44336;--color-warning: #ff9800;--color-info: #2196f3;--color-border-primary: #404043;--color-border-secondary: #505053;--color-border-focus: var(--color-accent-primary);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .6);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--font-family-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "Courier New", Courier, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--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;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--spacing-md)}a{color:var(--color-accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}a:active{color:var(--color-accent-active)}button{font-family:inherit;font-size:inherit;line-height:inherit;cursor:pointer;border:none;background:none;padding:0;color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;min-height:44px}.btn:active:not(:disabled){transform:scale(.95)}.btn-primary{background-color:var(--color-accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){background-color:var(--color-accent-active);transform:scale(.95)}.btn-secondary{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-elevated);border-color:var(--color-border-secondary)}.btn-secondary:active:not(:disabled){transform:scale(.95)}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;color:var(--color-text-primary);background-color:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-fast);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-subtle)}input::placeholder{color:var(--color-text-tertiary)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-bg-elevated);border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-secondary)}::selection{background-color:var(--color-accent-primary);color:#fff}:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.w-full{width:100%}.h-full{height:100%}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}
