:root{--color-primary-50: #eff6ff;--color-primary-100: #dbeafe;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-700: #1d4ed8;--color-ricordo-50: #faf8f5;--color-ricordo-100: #f5f0e8;--color-ricordo-200: #e8dfd0;--color-ricordo-300: #d4c4a8;--color-ricordo-400: #a08b6d;--color-ricordo-500: #8b7355;--color-ricordo-600: #6d5a43;--color-ricordo-700: #524433;--color-ricordo-800: #3d3326;--color-ricordo-900: #2a231a;--color-amber-200: #e8d4b8;--color-amber-300: #d4a574;--color-amber-400: #c4956a;--color-amber-500: #b8845a;--color-success-50: #f0fdf4;--color-success-500: #10b981;--color-success-600: #059669;--color-warning-50: #fef3c7;--color-warning-400: #fbbf24;--color-warning-600: #f59e0b;--color-warning-700: #92400e;--color-error-50: #fef2f2;--color-error-100: #fecaca;--color-error-500: #dc2626;--color-white: #ffffff;--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: #374151;--color-gray-900: #111827;--color-background: var(--color-white);--color-surface: var(--color-white);--color-border: var(--color-gray-200);--color-border-hover: var(--color-gray-300);--color-text-primary: var(--color-gray-900);--color-text-secondary: var(--color-gray-500);--color-text-tertiary: var(--color-gray-400);--color-button-primary: var(--color-primary-500);--color-button-primary-hover: var(--color-primary-600)}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-xs: var(--space-2);--space-sm: var(--space-3);--space-md: var(--space-4);--space-lg: var(--space-6);--space-xl: var(--space-8);--space-2xl: var(--space-10);--space-3xl: var(--space-12);--space-4xl: var(--space-16);--spacing-xs: var(--space-xs);--spacing-sm: var(--space-sm);--spacing-md: var(--space-md);--spacing-lg: var(--space-lg);--spacing-xl: var(--space-xl);--spacing-2xl: var(--space-2xl);--spacing-3xl: var(--space-3xl);--spacing-4xl: var(--space-4xl);--space-component-padding: var(--space-4);--space-component-margin: var(--space-4);--space-component-gap: var(--space-2);--space-layout-padding: var(--space-8);--space-layout-margin: var(--space-6);--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem}:root{--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "SF Mono", "Monaco", "Inconsolata", "Roboto Mono", monospace;--font-family-display: Georgia, "Times New Roman", serif;--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-size-5xl: 3rem;--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.625;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0em;--letter-spacing-wide: .05em;--letter-spacing-wider: .1em}*,*:before,*:after{box-sizing:border-box}*{margin:0}body{line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;font-family:var(--font-family-sans);color:var(--color-text-primary);background-color:var(--color-background)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root{isolation:isolate;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.m-0{margin:0}.mb-4{margin-bottom:var(--space-4)}.mt-4{margin-top:var(--space-4)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.border{border:1px solid var(--color-border)}.border-b{border-bottom:1px solid var(--color-border)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.transition{transition:all .2s ease}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.album-card{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-white);border:1px solid var(--color-ricordo-200);border-radius:12px;cursor:pointer;position:relative;transition:all .2s ease;box-shadow:0 2px 4px #2a231a0a}.album-card:hover{border-color:var(--color-ricordo-300);box-shadow:0 8px 16px #2a231a14;transform:translateY(-2px)}.album-card:active{transform:translateY(0)}.album-card--dragging{opacity:.7;transform:rotate(3deg);z-index:1000}.album-card--empty{border:2px dashed var(--color-ricordo-300);background:var(--color-ricordo-50)}.album-card--empty:hover{border-color:var(--color-ricordo-400);background:var(--color-ricordo-100)}.album-card--drag-over{border-color:var(--color-ricordo-500)!important;background:var(--color-ricordo-100)!important;box-shadow:0 0 0 2px #8b735533!important}.album-thumbnail{aspect-ratio:3 / 2;background:linear-gradient(135deg,var(--color-ricordo-100) 0%,var(--color-ricordo-200) 100%);display:flex;align-items:center;justify-content:center;color:var(--color-ricordo-400);border-radius:8px;margin-bottom:var(--spacing-xs)}.album-info{padding:var(--spacing-xs) 0}.album-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-ricordo-800);margin:0;line-height:var(--line-height-tight)}.album-meta{display:flex;flex-direction:column;gap:var(--spacing-xs)}.album-date{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-ricordo-500)}.album-status{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.album-status--owned{color:var(--color-ricordo-600)}.album-status--claimed{color:var(--color-ricordo-500)}.album-badge{font-size:10px;font-weight:var(--font-weight-medium);padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.album-badge--virtual{background:var(--color-ricordo-100);color:var(--color-ricordo-600);border:1px solid var(--color-ricordo-200)}.album-badge--local{background:var(--color-ricordo-200);color:var(--color-ricordo-700);border:1px solid var(--color-ricordo-300)}.album-name-container,.album-date-container{display:flex;align-items:center;gap:var(--spacing-xs);position:relative}.album-name-container{min-height:1.5rem}.album-name-input,.album-date-input{width:100%;background:transparent;border:none;outline:none;padding:2px 0;border-bottom:1px solid var(--color-ricordo-500);-webkit-user-select:text;user-select:text}.album-name-input{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-ricordo-800)}.album-date-input{font-size:var(--font-size-sm);color:var(--color-ricordo-600)}.album-inline-edit-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:var(--color-ricordo-100);color:var(--color-ricordo-500);border-radius:4px;cursor:pointer;transition:all .2s ease;opacity:0;flex-shrink:0}.album-name-container:hover .album-edit-name,.album-date-container:hover .album-edit-date{opacity:1}.album-inline-edit-button:hover{background:var(--color-ricordo-200);color:var(--color-ricordo-700)}.album-menu-container{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);z-index:10}.album-menu-trigger{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:var(--color-white);color:var(--color-ricordo-500);border-radius:6px;cursor:pointer;transition:all .2s ease;opacity:0;box-shadow:0 1px 3px #2a231a1a}.album-card:hover .album-menu-trigger{opacity:1}.album-menu-trigger:hover{background:var(--color-ricordo-50);color:var(--color-ricordo-700)}.album-menu{position:absolute;top:100%;right:0;margin-top:var(--spacing-xs);background:var(--color-white);border:1px solid var(--color-ricordo-200);border-radius:8px;box-shadow:0 8px 16px #2a231a1f;min-width:140px;z-index:20;overflow:hidden}.album-menu-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);border:none;background:none;color:var(--color-ricordo-700);font-size:var(--font-size-sm);cursor:pointer;transition:background-color .15s ease;text-align:left}.album-menu-item:hover{background:var(--color-ricordo-50)}.album-menu-item--danger{color:#dc2626}.album-menu-item--danger:hover{background:#fef2f2}.album-menu-item--disabled{opacity:.5;cursor:not-allowed!important;color:var(--color-ricordo-400)!important}.album-menu-item--disabled:hover{background:transparent!important}.album-list{padding:0;max-width:1200px;margin:0 auto}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--spacing-lg)}.album-list-loading,.album-list-error{display:flex;align-items:center;justify-content:center;padding:var(--spacing-4xl);text-align:center;color:var(--color-ricordo-500)}.album-list-error{color:var(--color-error, #dc2626)}.album-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-4xl) var(--spacing-xl);text-align:center;min-height:300px;border:2px dashed var(--color-ricordo-300);border-radius:16px;background:var(--color-ricordo-50);margin:var(--spacing-lg) 0;transition:all .2s ease;cursor:pointer}.album-list-empty:hover{border-color:var(--color-ricordo-400);background:var(--color-ricordo-100)}.album-list-empty--dragover{border-color:var(--color-ricordo-500);background:var(--color-ricordo-100);border-style:solid;transform:scale(1.01)}.album-list-empty svg.empty-icon{width:64px;height:64px;color:var(--color-ricordo-300);margin-bottom:var(--spacing-lg)}.album-list-empty h3{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-700);margin:0 0 var(--spacing-sm) 0}.album-list-empty p{font-size:var(--font-size-base);color:var(--color-ricordo-500);max-width:320px;line-height:var(--line-height-relaxed);margin:0 0 var(--spacing-lg) 0}.album-list-empty .add-photos-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);border:none;border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #8b735540}.album-list-empty .add-photos-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b735559}.album-list-empty .add-photos-btn:disabled{opacity:.6;cursor:not-allowed}.album-list-empty .add-photos-btn svg{width:18px;height:18px;color:inherit;margin:0}.upload-progress{width:100%;max-width:280px;height:6px;background:var(--color-ricordo-200);border-radius:3px;margin-top:var(--spacing-md);overflow:hidden}.upload-progress-bar{height:100%;background:linear-gradient(90deg,var(--color-ricordo-500) 0%,var(--color-ricordo-400) 100%);border-radius:3px;transition:width .2s ease-out}.photo-gallery{margin:var(--spacing-lg) 0;padding:var(--spacing-md);border:2px dashed transparent;border-radius:16px;transition:all .2s ease}.photo-gallery--dragover{border-color:var(--color-ricordo-400);background:var(--color-ricordo-50)}.photo-gallery-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding:0 var(--spacing-xs)}.photo-gallery-header .add-more-btn{margin-left:auto}.view-mode-selector{display:flex;align-items:center;gap:2px;background:var(--color-ricordo-100);border-radius:6px;padding:2px}.view-mode-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--color-ricordo-400);cursor:pointer;transition:all .15s ease}.view-mode-btn:hover{color:var(--color-ricordo-600);background:var(--color-ricordo-200)}.view-mode-btn--active{color:var(--color-ricordo-700);background:var(--color-white);box-shadow:0 1px 3px #8b735526}.view-mode-btn svg{width:16px;height:16px}.photo-count{font-family:var(--font-family-display);font-size:var(--font-size-lg);color:var(--color-ricordo-600);font-weight:var(--font-weight-normal)}.add-more-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:transparent;color:var(--color-ricordo-500);border:1px solid var(--color-ricordo-300);border-radius:6px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease}.add-more-btn:hover:not(:disabled){background:var(--color-ricordo-50);border-color:var(--color-ricordo-400);color:var(--color-ricordo-600)}.add-more-btn:disabled{opacity:.5;cursor:not-allowed}.add-more-btn svg{width:16px;height:16px}.upload-progress.gallery-progress{margin:0 0 var(--spacing-md) 0;max-width:100%}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-md)}.photo-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--color-ricordo-100);border:1px solid var(--color-ricordo-200);transition:all .2s ease}.photo-item:hover{transform:translateY(-2px);box-shadow:0 8px 24px #8b735526;border-color:var(--color-ricordo-300)}.photo-item img{width:100%;height:100%;object-fit:cover;display:block;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-ricordo-100) 0%,var(--color-ricordo-50) 100%)}.photo-placeholder svg{color:var(--color-ricordo-300);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.photo-name{position:absolute;bottom:0;left:0;right:0;padding:var(--spacing-sm);background:linear-gradient(to top,rgba(42,35,26,.85),transparent);color:var(--color-white);font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transform:translateY(4px);transition:all .2s ease}.photo-item:hover .photo-name{opacity:1;transform:translateY(0)}.photo-item--uploading{position:relative}.photo-item--uploading .photo-preview{opacity:.6;filter:blur(1px)}.photo-item--done .photo-preview{opacity:1;filter:none;transition:all .3s ease}.upload-ring-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px}.upload-ring{width:100%;height:100%;transform:rotate(-90deg)}.upload-ring-bg{stroke:#ffffff4d}.upload-ring-progress{stroke:var(--color-white);transition:stroke-dasharray .2s ease}.upload-done-check{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background:var(--color-ricordo-500);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-white);animation:check-pop .3s ease}@keyframes check-pop{0%{transform:translate(-50%,-50%) scale(0)}70%{transform:translate(-50%,-50%) scale(1.2)}to{transform:translate(-50%,-50%) scale(1)}}.photo-item--transitioning{position:relative}.photo-item--transitioning .photo-preview{opacity:1;filter:none}.photo-item--transitioning .upload-done-check{animation:check-pop .3s ease,check-fade-out .5s ease 1s forwards}@keyframes check-fade-out{0%{opacity:1}to{opacity:0}}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(100px);display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-ricordo-700);color:var(--color-white);border-radius:24px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);box-shadow:0 4px 20px #2a231a4d;opacity:0;transition:all .3s ease;z-index:1000}.toast--visible{transform:translate(-50%) translateY(0);opacity:1}.toast svg{color:var(--color-success-500)}@media (max-width: 768px){.album-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-md)}.photo-grid:not(.photo-grid--list):not(.photo-grid--small):not(.photo-grid--medium):not(.photo-grid--large){grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--spacing-sm)}.photo-item{border-radius:8px}.photo-name{padding:var(--spacing-xs);font-size:10px}.view-mode-selector{gap:1px}.view-mode-btn{width:24px;height:24px}.view-mode-btn svg{width:14px;height:14px}.photo-grid--small{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.photo-grid--large{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (min-width: 1024px){.album-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-xl)}.photo-grid:not(.photo-grid--list):not(.photo-grid--small):not(.photo-grid--medium):not(.photo-grid--large){grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-lg)}.photo-grid--small{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.photo-grid--large{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}.photo-grid.photo-grid--list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.photo-grid.photo-grid--list .photo-item{aspect-ratio:auto;display:flex;flex-direction:row;align-items:center;height:48px;padding:var(--spacing-xs) var(--spacing-sm);border-radius:8px}.photo-grid.photo-grid--list .photo-item img{width:36px;height:36px;border-radius:4px;flex-shrink:0;object-fit:cover}.photo-grid.photo-grid--list .photo-placeholder{width:36px;height:36px;min-width:36px;border-radius:4px;flex-shrink:0}.photo-grid.photo-grid--list .photo-placeholder svg{width:18px;height:18px}.photo-grid.photo-grid--list .photo-name{position:static;background:none;color:var(--color-ricordo-700);font-size:var(--font-size-sm);padding:0 var(--spacing-sm);opacity:1;transform:none;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-grid.photo-grid--list .upload-ring-container,.photo-grid.photo-grid--list .upload-done-check{position:static;transform:none;width:32px;height:32px;flex-shrink:0;margin-left:auto}.photo-grid.photo-grid--small{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--spacing-sm)}.photo-grid.photo-grid--small .photo-item{border-radius:8px}.photo-grid.photo-grid--small .photo-name{font-size:10px;padding:var(--spacing-xs)}.photo-grid.photo-grid--small .upload-ring-container{width:32px;height:32px}.photo-grid.photo-grid--small .upload-done-check{width:28px;height:28px}.photo-grid.photo-grid--small .upload-done-check svg{width:16px;height:16px}.photo-grid.photo-grid--medium{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-md)}.photo-grid.photo-grid--large{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-lg)}.photo-grid.photo-grid--large .photo-item{border-radius:16px}.photo-grid.photo-grid--large .photo-name{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.photo-grid.photo-grid--large .upload-ring-container{width:64px;height:64px}.photo-grid.photo-grid--large .upload-done-check{width:56px;height:56px}.photo-grid.photo-grid--large .upload-done-check svg{width:32px;height:32px}.photo-checkbox{position:absolute;top:8px;left:8px;width:20px;height:20px;border-radius:4px;background:#ffffffd9;border:2px solid var(--color-ricordo-300);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:scale(.8);transition:all .15s ease;z-index:10}.photo-item:hover .photo-checkbox,.photo-checkbox--checked{opacity:1;transform:scale(1)}.photo-checkbox--checked{background:var(--color-ricordo-500);border-color:var(--color-ricordo-500);color:var(--color-white)}.photo-checkbox:hover{border-color:var(--color-ricordo-500)}.photo-item--selected{outline:3px solid var(--color-ricordo-500);outline-offset:-3px}.photo-item--selected img{opacity:.85}.photo-grid.photo-grid--list .photo-checkbox{position:static;opacity:1;transform:scale(1);margin-right:var(--spacing-sm);flex-shrink:0}.photo-grid.photo-grid--list .photo-item--selected{outline:none;background:var(--color-ricordo-100)}.photo-grid.photo-grid--small .photo-checkbox{width:16px;height:16px;top:4px;left:4px}.photo-grid.photo-grid--small .photo-checkbox svg{width:10px;height:10px}.selection-action-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-ricordo-800);border-radius:12px;box-shadow:0 8px 32px #2a231a66;z-index:1000;animation:action-bar-slide-up .2s ease}@keyframes action-bar-slide-up{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.selection-info{display:flex;align-items:center;gap:var(--spacing-sm);padding-right:var(--spacing-md);border-right:1px solid var(--color-ricordo-600)}.selection-count{color:var(--color-white);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.selection-select-all{background:transparent;border:none;color:var(--color-ricordo-300);font-size:var(--font-size-xs);cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .15s ease}.selection-select-all:hover{color:var(--color-white);background:var(--color-ricordo-700)}.selection-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.selection-action-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:none;border-radius:6px;color:var(--color-white);font-size:var(--font-size-sm);cursor:pointer;transition:all .15s ease}.selection-action-btn:hover{background:var(--color-ricordo-700)}.selection-action-btn--danger:hover{background:var(--color-error, #dc2626)}.selection-action-btn svg{flex-shrink:0}.selection-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--color-ricordo-400);cursor:pointer;margin-left:var(--spacing-xs);transition:all .15s ease}.selection-close-btn:hover{background:var(--color-ricordo-700);color:var(--color-white)}@media (max-width: 768px){.selection-action-bar{left:16px;right:16px;transform:none;bottom:16px;padding:var(--spacing-xs) var(--spacing-sm)}.selection-info{padding-right:var(--spacing-sm)}.selection-action-btn span{display:none}.selection-action-btn{padding:var(--spacing-xs)}}.rename-modal{min-width:320px}.rename-modal h3{margin:0 0 var(--spacing-md) 0;font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-800)}.rename-input-wrapper{display:flex;align-items:center;background:var(--color-ricordo-50);border:1px solid var(--color-ricordo-200);border-radius:8px;overflow:hidden;margin-bottom:var(--spacing-lg)}.rename-input-wrapper input{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;font-size:var(--font-size-base);color:var(--color-ricordo-800);outline:none}.rename-input-wrapper input:focus{background:var(--color-white)}.rename-extension{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-ricordo-100);color:var(--color-ricordo-500);font-size:var(--font-size-sm);border-left:1px solid var(--color-ricordo-200)}.upload-trigger-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);border:none;border-radius:10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #8b735540}.upload-trigger-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b735559}.upload-trigger-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.upload-interface{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--color-white);border:1px solid var(--color-ricordo-200);border-radius:16px;box-shadow:0 20px 40px #2a231a26;z-index:1000;min-width:400px;max-width:500px}.upload-interface:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:#2a231a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:-1}.upload-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-ricordo-200)}.upload-header h3{margin:0;font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-800)}.upload-close-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--color-ricordo-500);border-radius:8px;cursor:pointer;transition:all .2s ease}.upload-close-button:hover:not(:disabled){background:var(--color-ricordo-100);color:var(--color-ricordo-700)}.upload-close-button:disabled{opacity:.4;cursor:not-allowed}.upload-drop-area{padding:var(--spacing-xl);text-align:center;border:2px dashed var(--color-ricordo-300);border-radius:12px;margin:var(--spacing-xl);transition:all .2s ease;position:relative;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);background:var(--color-ricordo-50)}.upload-drop-area--active{border-color:var(--color-ricordo-500);background:var(--color-ricordo-100);border-style:solid}.upload-drop-area--loading{border-color:var(--color-ricordo-500);background:var(--color-ricordo-100);pointer-events:none}.upload-drop-area h4{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-ricordo-800)}.upload-drop-area p{margin:0;color:var(--color-ricordo-500);font-size:var(--font-size-sm)}.upload-file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-file-input:disabled{cursor:not-allowed}.upload-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.upload-loading p{color:var(--color-success-500)!important;font-weight:var(--font-weight-medium)}.upload-error{padding:var(--space-4) var(--space-6);background:var(--color-error-50);border-top:1px solid var(--color-error-100)}.upload-error p{margin:0;color:var(--color-error-500);font-size:var(--font-size-sm)}.folder-toolbar{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md);gap:var(--spacing-lg);flex-wrap:wrap}.folder-toolbar-left{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.folder-toolbar-right{display:flex;align-items:center;gap:var(--spacing-md)}.upload-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);border:none;border-radius:10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #8b735540}.upload-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b735559}.upload-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.folder-action-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:var(--color-white);border:1px solid var(--color-ricordo-300);border-radius:10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-ricordo-700);cursor:pointer;transition:all .2s ease}.folder-action-button:hover{background:var(--color-ricordo-50);border-color:var(--color-ricordo-400);color:var(--color-ricordo-800)}.folder-action-button svg{color:var(--color-ricordo-500)}.folder-save-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);border:none;border-radius:10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #8b735540}.folder-save-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b735559}@media (max-width: 640px){.folder-toolbar{padding:var(--spacing-sm) 0}.folder-toolbar-left{width:100%;justify-content:stretch}.folder-action-button,.upload-button{flex:1;justify-content:center}.folder-action-button span,.upload-button span{display:none}}.breadcrumbs{display:flex;align-items:center;padding:var(--spacing-xs) 0;font-size:var(--font-size-sm);color:var(--color-ricordo-600);gap:var(--spacing-sm);min-height:2.5rem;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;margin-bottom:var(--spacing-md)}.breadcrumbs::-webkit-scrollbar{height:4px}.breadcrumbs::-webkit-scrollbar-track{background:var(--color-ricordo-100);border-radius:2px}.breadcrumbs::-webkit-scrollbar-thumb{background:var(--color-ricordo-300);border-radius:2px}.breadcrumbs::-webkit-scrollbar-thumb:hover{background:var(--color-ricordo-400)}.breadcrumb-segment{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.breadcrumb-item{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:var(--font-size-sm);flex-shrink:0;-webkit-user-select:none;user-select:none;background:var(--color-white);border:1px solid var(--color-ricordo-200);color:var(--color-ricordo-700)}.breadcrumb-item svg{flex-shrink:0;min-width:16px;min-height:16px;color:var(--color-ricordo-500)}.breadcrumb-item--root{color:var(--color-ricordo-700);font-weight:var(--font-weight-medium);flex-shrink:0}.breadcrumb-item:hover{background:var(--color-ricordo-50);border-color:var(--color-ricordo-300);color:var(--color-ricordo-800)}.breadcrumb-item--drag-over{background:var(--color-ricordo-100)!important;border-color:var(--color-ricordo-500)!important;color:var(--color-ricordo-700)!important;box-shadow:0 0 0 2px #8b735533!important}.breadcrumb-separator{color:var(--color-ricordo-400);flex-shrink:0;-webkit-user-select:none;user-select:none}.breadcrumb-separator svg{flex-shrink:0}@media (max-width: 640px){.breadcrumbs{padding:var(--spacing-sm) 0}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#2a231a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);animation:modalFadeIn .2s ease-out}.modal-content{background:var(--color-white);border-radius:16px;box-shadow:0 20px 40px #2a231a26;max-width:420px;width:100%;max-height:90vh;overflow-y:auto;padding:var(--spacing-xl);animation:modalSlideIn .3s ease-out}.modal-content h3{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--color-ricordo-800);margin:0 0 var(--spacing-xs) 0}.modal-content p{color:var(--color-ricordo-600);margin:0 0 var(--spacing-lg) 0;line-height:var(--line-height-relaxed)}.modal-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-ricordo-200)}.modal-actions button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:10px;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:all .2s ease;cursor:pointer;border:none;min-width:100px}.modal-actions button:disabled{cursor:not-allowed;opacity:.6}.modal-actions .primary-button{background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);box-shadow:0 2px 8px #8b735540}.modal-actions .primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b735559}.modal-actions button:not(.primary-button){background:var(--color-white);color:var(--color-ricordo-700);border:1px solid var(--color-ricordo-300)}.modal-actions button:not(.primary-button):hover:not(:disabled){background:var(--color-ricordo-50);border-color:var(--color-ricordo-400)}.error-message{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.error-message p{color:#dc2626;margin:0;font-size:var(--font-size-sm)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.modal-content{margin:var(--spacing-sm);padding:var(--spacing-lg)}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;font-weight:var(--font-weight-medium);color:var(--color-ricordo-800);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.form-group input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-ricordo-300);border-radius:8px;font-size:var(--font-size-base);transition:all .2s ease;background:var(--color-white);font-family:var(--font-family-sans);color:var(--color-ricordo-800)}.form-group input::placeholder{color:var(--color-ricordo-400)}.form-group input:focus{outline:none;border-color:var(--color-ricordo-500);background:var(--color-white);box-shadow:0 0 0 3px #8b73551a}.form-group input:disabled{background:var(--color-ricordo-100);color:var(--color-ricordo-500);cursor:not-allowed}.form-group small{display:block;color:var(--color-ricordo-500);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.otp-input{font-family:var(--font-family-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);text-align:center;text-transform:uppercase}.primary-button{background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);padding:var(--spacing-sm) var(--spacing-lg);border-radius:10px;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:all .2s ease;cursor:pointer;border:none;min-width:100px;box-shadow:0 2px 8px #8b735540}.primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b735559}.primary-button:active:not(:disabled){transform:translateY(0)}.primary-button:disabled{opacity:.6;cursor:not-allowed}.secondary-button{background:var(--color-white);color:var(--color-ricordo-700);padding:var(--spacing-sm) var(--spacing-lg);border-radius:10px;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:all .2s ease;cursor:pointer;border:1px solid var(--color-ricordo-300);min-width:100px}.secondary-button:hover:not(:disabled){background:var(--color-ricordo-50);border-color:var(--color-ricordo-400)}.secondary-button:disabled{opacity:.6;cursor:not-allowed}.login-form{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);background:radial-gradient(ellipse at 20% 30%,rgba(232,223,208,.5) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(212,196,168,.3) 0%,transparent 50%),linear-gradient(180deg,var(--color-ricordo-50) 0%,var(--color-ricordo-100) 100%)}.login-form__card{width:100%;max-width:420px;background:var(--color-white);border:1px solid var(--color-ricordo-200);border-radius:16px;padding:var(--spacing-xl);box-shadow:0 8px 30px #8b73551f;text-align:center}.login-form__logo{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.login-form__logo-img{height:40px;width:auto}.login-form__logo-text{font-family:var(--font-family-display);font-size:var(--font-size-xl);color:var(--color-ricordo-700);letter-spacing:var(--letter-spacing-wide)}.login-form h2{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-800);margin-bottom:var(--spacing-xs)}.login-form p{color:var(--color-ricordo-600);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg)}.login-form .form-group{margin-bottom:var(--spacing-md)}.login-form .primary-button{width:100%}.login-form .link-button{display:block;width:100%;margin-top:var(--spacing-md);background:none;border:none;padding:var(--spacing-xs);color:var(--color-ricordo-600);font-size:var(--font-size-sm);text-decoration:underline;cursor:pointer}.login-form .link-button:hover{color:var(--color-ricordo-800)}.payment-signup{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 20% 30%,rgba(232,223,208,.5) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(212,196,168,.3) 0%,transparent 50%),linear-gradient(180deg,var(--color-ricordo-50) 0%,var(--color-ricordo-100) 100%);position:relative;overflow-x:hidden}.payment-signup__header{padding:var(--spacing-lg) var(--spacing-xl);display:flex;justify-content:center}.payment-signup__logo{display:flex;align-items:center;gap:var(--spacing-md)}.payment-signup__logo-img{height:48px;width:auto}.payment-signup__logo-text{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-700);letter-spacing:var(--letter-spacing-wide)}.payment-signup__content{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);max-width:1200px;margin:0 auto;padding:var(--spacing-xl);align-items:center}.payment-signup__hero{position:relative;padding:var(--spacing-xl)}.payment-signup__hero-content{position:relative;z-index:2}.payment-signup__headline{font-family:var(--font-family-display);font-size:var(--font-size-5xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-800);line-height:var(--line-height-tight);margin:0 0 var(--spacing-lg) 0}.payment-signup__headline-accent{display:block;color:var(--color-ricordo-500);font-style:italic}.payment-signup__tagline{font-size:var(--font-size-lg);color:var(--color-ricordo-600);line-height:var(--line-height-relaxed);margin:0;max-width:420px}.payment-signup__decoration{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden}.payment-signup__circle{position:absolute;border-radius:50%;opacity:.06}.payment-signup__circle--1{width:350px;height:350px;background:var(--color-ricordo-400);top:-80px;left:-120px;animation:float 20s ease-in-out infinite}.payment-signup__circle--2{width:250px;height:250px;background:var(--color-amber-300);bottom:-30px;left:40%;animation:float 15s ease-in-out infinite reverse}.payment-signup__circle--3{width:180px;height:180px;background:var(--color-ricordo-500);top:30%;right:-40px;animation:float 18s ease-in-out infinite}@keyframes float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(15px,15px) scale(1.03)}}.payment-signup__checkout{display:flex;justify-content:center;padding:var(--spacing-md)}.payment-signup__card{background:var(--color-white);border-radius:20px;padding:2.5rem;width:100%;max-width:420px;box-shadow:0 4px 6px -1px #2a231a0a,0 10px 15px -3px #2a231a0f,0 20px 25px -5px #2a231a0a;border:1px solid var(--color-ricordo-200);position:relative;overflow:hidden}.payment-signup__card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-ricordo-400) 0%,var(--color-amber-400) 50%,var(--color-ricordo-500) 100%)}.payment-signup__plan-badge{margin-bottom:var(--spacing-md)}.payment-signup__plan-label{display:inline-block;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--color-ricordo-600);background:var(--color-ricordo-100);padding:var(--spacing-xs) var(--spacing-sm);border-radius:6px}.payment-signup__plan-name{font-family:var(--font-family-display);font-size:var(--font-size-4xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-800);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--spacing-xs) 0}.payment-signup__plan-meaning{font-size:var(--font-size-sm);color:var(--color-ricordo-400);font-style:italic;margin:0 0 var(--spacing-lg) 0}.payment-signup__plan-meaning span{color:var(--color-ricordo-500);font-style:normal}.payment-signup__price{display:flex;align-items:baseline;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-ricordo-200)}.payment-signup__price-amount{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-ricordo-800)}.payment-signup__price-currency{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-ricordo-500)}.payment-signup__price-period{font-size:var(--font-size-sm);color:var(--color-ricordo-400);margin-left:var(--spacing-sm)}.payment-signup__benefits{list-style:none;padding:0;margin:0 0 var(--spacing-xl) 0;display:flex;flex-direction:column;gap:var(--spacing-md)}.payment-signup__benefits li{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:var(--font-size-base);color:var(--color-ricordo-700);line-height:var(--line-height-normal)}.payment-signup__benefit-icon{flex-shrink:0;width:20px;height:20px;background:var(--color-ricordo-100);border-radius:50%;position:relative;margin-top:2px}.payment-signup__benefit-icon:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-60%) rotate(45deg);width:5px;height:9px;border-right:2px solid var(--color-ricordo-500);border-bottom:2px solid var(--color-ricordo-500)}.payment-signup__error{background:var(--color-error-50);border:1px solid var(--color-error-100);border-radius:8px;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-lg)}.payment-signup__error p{margin:0;font-size:var(--font-size-sm);color:var(--color-error-500)}.payment-signup__form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.payment-signup__cta{width:100%;padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 14px #8b73554d}.payment-signup__cta:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #8b735566}.payment-signup__cta:active:not(:disabled){transform:translateY(0)}.payment-signup__cta:disabled{opacity:.7;cursor:not-allowed}.payment-signup__cta-loading{display:flex;align-items:center;justify-content:center}.payment-signup__spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--color-white);border-radius:50%;animation:spin .8s ease-in-out infinite;margin-right:var(--spacing-sm)}@keyframes spin{to{transform:rotate(360deg)}}.payment-signup__cancel{width:100%;padding:var(--spacing-sm) var(--spacing-lg);background:transparent;color:var(--color-ricordo-500);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border:1px solid var(--color-ricordo-300);border-radius:12px;cursor:pointer;transition:all .2s ease}.payment-signup__cancel:hover:not(:disabled){background:var(--color-ricordo-50);border-color:var(--color-ricordo-400)}.payment-signup__cancel:disabled{opacity:.5;cursor:not-allowed}.payment-signup__security{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-ricordo-200);display:flex;gap:var(--spacing-sm);align-items:flex-start}.payment-signup__security-icon{flex-shrink:0;width:16px;height:18px;position:relative;margin-top:2px}.payment-signup__security-icon:before{content:"";position:absolute;width:12px;height:9px;background:var(--color-ricordo-400);border-radius:2px;bottom:0;left:50%;transform:translate(-50%)}.payment-signup__security-icon:after{content:"";position:absolute;width:8px;height:7px;border:2px solid var(--color-ricordo-400);border-radius:50% 50% 0 0;border-bottom:none;top:0;left:50%;transform:translate(-50%)}.payment-signup__security p{margin:0;font-size:var(--font-size-xs);color:var(--color-ricordo-400);line-height:var(--line-height-relaxed)}.payment-signup__footer{padding:var(--spacing-lg) var(--spacing-xl);text-align:center}.payment-signup__footer p{margin:0;font-size:var(--font-size-sm);color:var(--color-ricordo-400);letter-spacing:var(--letter-spacing-wide)}.payment-signup__login-link{margin-top:var(--spacing-sm)!important;font-size:var(--font-size-sm);color:var(--color-ricordo-500)}.payment-signup__login-link a{color:var(--color-ricordo-600);text-decoration:underline;font-weight:var(--font-weight-medium);transition:color .2s ease}.payment-signup__login-link a:hover{color:var(--color-ricordo-700)}@media (max-width: 968px){.payment-signup__content{grid-template-columns:1fr;padding:var(--spacing-md);gap:var(--spacing-lg)}.payment-signup__hero{text-align:center;padding:var(--spacing-md)}.payment-signup__headline{font-size:var(--font-size-3xl)}.payment-signup__tagline{max-width:none;margin:0 auto}.payment-signup__card{padding:2rem}.payment-signup__decoration{display:none}}@media (max-width: 480px){.payment-signup__header{padding:var(--spacing-md)}.payment-signup__logo-img{height:36px}.payment-signup__logo-text{font-size:var(--font-size-xl)}.payment-signup__content{padding:var(--spacing-sm)}.payment-signup__headline{font-size:var(--font-size-2xl)}.payment-signup__tagline{font-size:var(--font-size-base)}.payment-signup__card{padding:1.5rem;border-radius:16px}.payment-signup__plan-name,.payment-signup__price-amount{font-size:var(--font-size-3xl)}.payment-signup__footer{padding:var(--spacing-md)}}.payment-result{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 20% 30%,rgba(232,223,208,.5) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(212,196,168,.3) 0%,transparent 50%),linear-gradient(180deg,var(--color-ricordo-50) 0%,var(--color-ricordo-100) 100%)}.payment-result__header{padding:var(--spacing-lg) var(--spacing-xl);display:flex;justify-content:center}.payment-result__logo{display:flex;align-items:center;gap:var(--spacing-md)}.payment-result__logo-img{height:48px;width:auto}.payment-result__logo-text{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-700);letter-spacing:var(--letter-spacing-wide)}.payment-result__container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);max-width:500px;margin:0 auto;text-align:center}.payment-result__icon{width:80px;height:80px;color:var(--color-ricordo-500);margin-bottom:var(--spacing-lg)}.payment-result__icon svg{width:100%;height:100%}.payment-result__icon--cancelled{color:var(--color-ricordo-400)}.payment-result__title{font-family:var(--font-family-display);font-size:var(--font-size-4xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-800);margin:0 0 var(--spacing-sm) 0}.payment-result__subtitle{font-size:var(--font-size-lg);color:var(--color-ricordo-500);margin:0 0 var(--spacing-xl) 0;font-style:italic}.payment-result__card{background:var(--color-white);border-radius:16px;padding:2rem;width:100%;box-shadow:0 4px 6px -1px #2a231a0a,0 10px 15px -3px #2a231a0f;border:1px solid var(--color-ricordo-200);margin-bottom:var(--spacing-lg);text-align:left}.payment-result__card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-ricordo-800);margin:0 0 var(--spacing-md) 0}.payment-result__steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.payment-result__steps li{display:flex;align-items:center;gap:var(--spacing-md)}.payment-result__step-number{width:28px;height:28px;background:var(--color-ricordo-100);color:var(--color-ricordo-600);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex-shrink:0}.payment-result__step-text{font-size:var(--font-size-base);color:var(--color-ricordo-700);line-height:var(--line-height-normal)}.payment-result__note{background:var(--color-ricordo-100);border:1px solid var(--color-ricordo-200);border-radius:12px;padding:var(--spacing-md);width:100%}.payment-result__note p{margin:0;font-size:var(--font-size-sm);color:var(--color-ricordo-600);line-height:var(--line-height-relaxed)}.payment-result__footer{padding:var(--spacing-lg) var(--spacing-xl);text-align:center}.payment-result__footer p{margin:0;font-size:var(--font-size-sm);color:var(--color-ricordo-400);letter-spacing:var(--letter-spacing-wide)}.payment-result__actions{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%;margin-top:var(--spacing-lg)}.payment-result__btn{padding:var(--spacing-md) var(--spacing-lg);border-radius:12px;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease;text-decoration:none;text-align:center}.payment-result__btn--primary{background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);border:none;box-shadow:0 4px 14px #8b73554d}.payment-result__btn--primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b735566}.payment-result__btn--secondary{background:transparent;color:var(--color-ricordo-500);border:1px solid var(--color-ricordo-300)}.payment-result__btn--secondary:hover{background:var(--color-ricordo-50);border-color:var(--color-ricordo-400)}@media (max-width: 480px){.payment-result__header{padding:var(--spacing-md)}.payment-result__logo-img{height:36px}.payment-result__logo-text{font-size:var(--font-size-xl)}.payment-result__container{padding:var(--spacing-md)}.payment-result__title{font-size:var(--font-size-2xl)}.payment-result__icon{width:60px;height:60px}.payment-result__card{padding:var(--spacing-lg)}.payment-result__footer{padding:var(--spacing-md)}}.app{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 20% 0%,rgba(232,223,208,.4) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(212,196,168,.2) 0%,transparent 50%),linear-gradient(180deg,var(--color-ricordo-50) 0%,var(--color-white) 100%)}.app__header{padding:var(--spacing-md) var(--spacing-2xl);background:var(--color-white);border-bottom:1px solid var(--color-ricordo-200);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xl);box-shadow:0 1px 3px #2a231a0a}.app__logo{display:flex;align-items:center;gap:var(--spacing-lg)}.app__logo-img{height:48px;width:auto}.app__logo-text{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-700);letter-spacing:var(--letter-spacing-wide)}.app__user-info{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-ricordo-50);border-radius:10px}.app__welcome{font-size:var(--font-size-sm);color:var(--color-ricordo-500);margin:0;line-height:1}.app__user-email{font-size:var(--font-size-base);color:var(--color-ricordo-700);font-weight:var(--font-weight-medium);margin:0;line-height:1}.app__logout-btn{padding:var(--spacing-md) var(--spacing-xl);background:transparent;color:var(--color-ricordo-600);border:1px solid var(--color-ricordo-300);border-radius:10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease}.app__logout-btn:hover{background:var(--color-ricordo-50);border-color:var(--color-ricordo-400);color:var(--color-ricordo-700)}.app--interrupted{align-items:center;justify-content:center;padding:var(--spacing-2xl)}.app__reconnect{max-width:480px;text-align:center;background:var(--color-white);border:1px solid var(--color-ricordo-200);border-radius:16px;padding:var(--spacing-2xl);box-shadow:0 1px 3px #2a231a0a}.app__reconnect-title{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-700);margin:0 0 var(--spacing-md)}.app__reconnect-text{font-size:var(--font-size-base);color:var(--color-ricordo-500);line-height:1.6;margin:0 0 var(--spacing-xl)}.app__reconnect-btn{padding:var(--spacing-md) var(--spacing-2xl);background:var(--color-ricordo-600);color:var(--color-white);border:1px solid var(--color-ricordo-600);border-radius:10px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease}.app__reconnect-btn:hover{background:var(--color-ricordo-700);border-color:var(--color-ricordo-700)}.app__reconnect-signout{display:block;margin:var(--spacing-lg) auto 0;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;color:var(--color-ricordo-500);font-size:var(--font-size-sm);text-decoration:underline;cursor:pointer}.app__reconnect-signout:hover{color:var(--color-ricordo-700)}.app__main{flex:1;padding:var(--spacing-lg) var(--spacing-2xl)}.album-list{max-width:1200px;margin:0 auto}.folder-toolbar{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-md);flex-wrap:wrap;padding:var(--spacing-sm) 0}.folder-toolbar__btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);border-radius:10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease}.folder-toolbar__btn--primary{background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);border:none;box-shadow:0 2px 8px #8b735540}.folder-toolbar__btn--primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b735559}.folder-toolbar__btn--secondary{background:var(--color-white);color:var(--color-ricordo-700);border:1px solid var(--color-ricordo-300)}.folder-toolbar__btn--secondary:hover{background:var(--color-ricordo-50);border-color:var(--color-ricordo-400)}.album-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-4xl) var(--spacing-xl);text-align:center}.album-list-empty__icon{width:80px;height:80px;color:var(--color-ricordo-300);margin-bottom:var(--spacing-lg)}.album-list-empty__title{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);color:var(--color-ricordo-700);margin:0 0 var(--spacing-sm) 0}.album-list-empty__text{font-size:var(--font-size-base);color:var(--color-ricordo-500);margin:0;max-width:300px;line-height:var(--line-height-relaxed)}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-lg)}.album-card{background:var(--color-white);border-radius:12px;border:1px solid var(--color-ricordo-200);overflow:hidden;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #2a231a0a}.album-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px #2a231a14;border-color:var(--color-ricordo-300)}.album-card__thumbnail{aspect-ratio:4/3;background:linear-gradient(135deg,var(--color-ricordo-100) 0%,var(--color-ricordo-200) 100%);display:flex;align-items:center;justify-content:center}.album-card__thumbnail-icon{color:var(--color-ricordo-400);opacity:.6}.album-card__info{padding:var(--spacing-md)}.album-card__name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-ricordo-800);margin:0 0 var(--spacing-xs) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-card__meta{font-size:var(--font-size-sm);color:var(--color-ricordo-500);margin:0}.album-card__actions{display:flex;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--color-ricordo-100);background:var(--color-ricordo-50)}.album-card__action-btn{flex:1;padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:none;color:var(--color-ricordo-600);font-size:var(--font-size-xs);cursor:pointer;border-radius:4px;transition:all .15s ease}.album-card__action-btn:hover{background:var(--color-ricordo-200);color:var(--color-ricordo-800)}.breadcrumbs{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) 0}.breadcrumbs__item{font-size:var(--font-size-sm);color:var(--color-ricordo-500);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;transition:all .15s ease}.breadcrumbs__item:hover{background:var(--color-ricordo-100);color:var(--color-ricordo-700)}.breadcrumbs__item--current{color:var(--color-ricordo-800);font-weight:var(--font-weight-medium);cursor:default}.breadcrumbs__item--current:hover{background:transparent}.breadcrumbs__separator{color:var(--color-ricordo-300);font-size:var(--font-size-sm)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a231a80;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--color-white);border-radius:16px;padding:var(--spacing-xl);max-width:400px;width:90%;box-shadow:0 20px 40px #2a231a26}.modal-content h3{font-family:var(--font-family-display);font-size:var(--font-size-xl);color:var(--color-ricordo-800);margin:0 0 var(--spacing-sm) 0}.modal-content p{color:var(--color-ricordo-600);margin:0 0 var(--spacing-lg) 0}.modal-actions{display:flex;gap:var(--spacing-sm)}.modal-actions button{flex:1;padding:var(--spacing-sm) var(--spacing-md);border-radius:8px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease}.modal-actions .primary-button{background:linear-gradient(135deg,var(--color-ricordo-500) 0%,var(--color-ricordo-600) 100%);color:var(--color-white);border:none}.modal-actions .primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b73554d}.modal-actions .primary-button:disabled{opacity:.6;cursor:not-allowed}.modal-actions button:not(.primary-button){background:transparent;color:var(--color-ricordo-600);border:1px solid var(--color-ricordo-300)}.modal-actions button:not(.primary-button):hover{background:var(--color-ricordo-50)}.album-list-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-4xl);color:var(--color-ricordo-500)}.album-list-error{display:flex;align-items:center;justify-content:center;padding:var(--spacing-4xl);color:var(--color-error)}@media (max-width: 768px){.app__header{padding:var(--spacing-lg) var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.app__logo-img{height:36px}.app__logo-text{font-size:var(--font-size-lg)}.app__user-info{padding:var(--spacing-xs) var(--spacing-md)}.app__main{padding:var(--spacing-lg)}.folder-toolbar{flex-direction:column;gap:var(--spacing-md)}.folder-toolbar__btn{justify-content:center}.album-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md)}}@media (max-width: 480px){.app__header{padding:var(--spacing-md) var(--spacing-md)}.app__user-info{display:none}.app__main{padding:var(--spacing-md)}.album-grid{grid-template-columns:1fr 1fr}}.confirm-modal{text-align:center;position:relative}.confirm-modal__close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-ricordo-400);cursor:pointer;border-radius:6px;transition:all .15s ease}.confirm-modal__close:hover{background:var(--color-ricordo-100);color:var(--color-ricordo-600)}.confirm-modal__icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-md)}.confirm-modal__icon--danger{background:#fef2f2;color:#dc2626}.confirm-modal__icon--warning{background:#fffbeb;color:#d97706}.confirm-modal h3,.confirm-modal p{text-align:center}.confirm-modal .modal-actions{justify-content:center}.confirm-modal__btn--danger{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;color:var(--color-white)!important;border:none!important;box-shadow:0 2px 8px #dc262640}.confirm-modal__btn--danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #dc262659}.notification-modal{text-align:center;position:relative}.notification-modal__close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-ricordo-400);cursor:pointer;border-radius:6px;transition:all .15s ease}.notification-modal__close:hover{background:var(--color-ricordo-100);color:var(--color-ricordo-600)}.notification-modal__icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-md)}.notification-modal__icon--success{background:#f0fdf4;color:#16a34a}.notification-modal__icon--error{background:#fef2f2;color:#dc2626}.notification-modal__icon--info{background:var(--color-ricordo-100);color:var(--color-ricordo-600)}.notification-modal h3,.notification-modal p{text-align:center}.notification-modal .modal-actions{justify-content:center;border-top:none;padding-top:var(--spacing-md)}.notification-modal__copy{margin:var(--spacing-md) 0}.notification-modal__copy-label{display:block;font-size:var(--font-size-sm);color:var(--color-ricordo-500);margin-bottom:var(--spacing-xs)}.notification-modal__copy-box{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);background:var(--color-ricordo-50);border:1px solid var(--color-ricordo-200);border-radius:8px;padding:var(--spacing-sm) var(--spacing-md)}.notification-modal__copy-box code{font-family:var(--font-family-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-ricordo-800);letter-spacing:2px}.notification-modal__copy-btn{display:flex;align-items:center;gap:var(--spacing-xs);background:transparent;border:none;color:var(--color-ricordo-500);cursor:pointer;padding:var(--spacing-xs);border-radius:4px;transition:all .15s ease}.notification-modal__copy-btn:hover{background:var(--color-ricordo-200);color:var(--color-ricordo-700)}.notification-modal__copied{font-size:var(--font-size-xs);color:#16a34a;font-weight:var(--font-weight-medium)}.notification-modal__details{font-size:var(--font-size-sm);color:var(--color-ricordo-500);margin-top:var(--spacing-xs)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
