.navbar{background:var(--gradient-primary);color:var(--color-text-on-emphasis);padding:1rem 2rem;box-shadow:var(--shadow-nav)}.navbar-container{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.navbar-logo{font-family:var(--font-display);font-size:1.6rem;font-weight:400;letter-spacing:.06em;color:var(--color-brand-lavender);text-decoration:none;transition:opacity .3s;justify-self:center;text-align:center}.navbar-logo:hover{opacity:.8}.navbar-spacer{min-width:0}.navbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:1.5rem}.logout-button{background:rgba(var(--color-white-rgb),.2);color:var(--color-text-on-emphasis);border:1px solid rgba(var(--color-white-rgb),.3);padding:.5rem 1rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:all .2s}.logout-button:hover{background:rgba(var(--color-white-rgb),.3);border-color:rgba(var(--color-white-rgb),.5)}.logout-button:focus-visible{outline:3px solid rgba(var(--color-white-rgb),.6);outline-offset:2px}.loading-container{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:1.5rem;color:var(--color-text-on-emphasis)}@media(max-width:640px){.navbar{padding:1rem}}.home{padding:2rem;padding-top:0;color:var(--color-text-inverse)}@media(max-width:640px){.home{padding:1rem;padding-top:0}}.home-instructions-container{max-width:90%;margin:0 auto}.home-instructions{margin:0 auto 1rem;color:var(--color-text-inverse-soft);text-align:center;font-size:1.05rem;line-height:1.6}.home-instructions a{color:var(--color-text-link);text-decoration:underline;text-underline-offset:3px}.message{padding:.75rem 1rem;margin-bottom:1rem;border-radius:8px;text-align:center;background:var(--color-surface);border:1px solid rgba(var(--color-white-rgb),.08);color:var(--color-neutral-card-text)}.message-success{background:var(--color-status-success-soft);border-color:var(--color-status-success-border);color:var(--color-status-success-dark);border-width:1.5px;padding:.6rem 1rem;font-weight:500}.message-error{border-color:var(--color-status-error);color:var(--color-status-error-soft)}.sets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:2.25rem;margin-top:2rem}.set-card{display:flex;flex-direction:column;gap:.75rem;height:100%;background:var(--color-surface);border-radius:16px;padding:1.25rem 1.25rem 1.5rem;box-shadow:var(--shadow-set-card);cursor:pointer;transition:transform .2s ease,box-shadow .25s ease;color:var(--color-text-inverse)}.set-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-set-card-hover)}.set-card-photo{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:12px;border:1px solid var(--color-border-light);background:var(--color-neutral-200)}.set-card-photo img{width:100%;object-fit:contain;display:block;transition:transform .3s ease}.set-card:hover .set-card-photo img{transform:scale(1.02)}.set-card-body{display:flex;flex-direction:column;gap:.85rem;flex:1}.set-card h2{color:#000;margin:0;font-size:1.2rem;text-align:center}.empty-state{text-align:center;color:var(--color-text-on-emphasis);font-size:1.5rem;padding:3rem}.set-details{background:rgba(var(--color-white-rgb),.96);border-radius:18px;padding:2.25rem;max-width:1100px;margin:0 auto;box-shadow:var(--shadow-set-details);border:1px solid rgba(var(--color-periwinkle-rgb),.2);color:var(--color-text-primary)}.back-button{margin-bottom:1.25rem;padding:.55rem 1.15rem;background:rgba(var(--color-primary-rgb),.14);color:var(--color-text-tertiary);border:1px solid rgba(var(--color-primary-rgb),.25);border-radius:999px;cursor:pointer;font-weight:600;transition:background .2s ease,border-color .2s ease,transform .2s ease}.back-button:hover{background:rgba(var(--color-primary-rgb),.24);border-color:rgba(var(--color-primary-rgb),.38);transform:translateY(-1px)}.back-button:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.set-details-header{margin-bottom:1.5rem}.set-details-header h2{color:var(--color-header);margin:0;font-size:2rem}.set-details-content{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2.5rem;align-items:start}.photo-carousel{position:relative;display:flex;flex-direction:column;gap:1rem}.photo-frame{position:relative;overflow:hidden;border-radius:18px;border:1px solid rgba(var(--color-primary-rgb),.18);background:var(--color-surface-soft);padding:1rem;display:flex;align-items:center;justify-content:center;cursor:zoom-in;outline:none;min-height:420px;box-shadow:inset 0 0 0 1px rgba(var(--color-white-rgb),.45),var(--shadow-photo-base)}.photo-frame img{max-width:100%;max-height:520px;object-fit:contain;filter:drop-shadow(0 16px 32px rgba(var(--color-primary-rgb),.16))}.photo-caption{position:absolute;top:16px;left:16px;background:rgba(var(--color-white-rgb),.88);color:var(--color-text-caption);padding:.35rem .9rem;border-radius:999px;font-size:.85rem;letter-spacing:.02em;box-shadow:var(--shadow-photo-caption)}.carousel-control{position:absolute;top:50%;transform:translateY(-50%);border:1px solid rgba(var(--color-primary-rgb),.25);background:rgba(var(--color-white-rgb),.92);color:var(--color-text-control);width:44px;height:44px;border-radius:50%;font-size:1.75rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 20px rgba(var(--color-indigo-mid-rgb),.18);transition:background .2s ease,transform .2s ease,border-color .2s ease}.carousel-control:hover{background:rgba(var(--color-primary-rgb),.18);border-color:rgba(var(--color-primary-rgb),.4);transform:translateY(-50%) scale(1.05)}.carousel-control:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.45)}.carousel-control-prev{left:12px}.carousel-control-next{right:12px}.carousel-indicators{display:flex;gap:.5rem;justify-content:center}.carousel-dot{width:12px;height:12px;border-radius:50%;border:none;background:var(--color-primary-soft);cursor:pointer;transition:transform .2s ease,background .2s ease;box-shadow:var(--shadow-carousel-dot)}.carousel-dot.active{background:var(--color-primary);transform:scale(1.25)}.carousel-dot:focus-visible{outline:2px solid rgba(var(--color-primary-rgb),.6)}.photo-hint{font-size:.9rem;text-align:center;color:var(--color-text-muted);margin:0}.polishes-list h3{color:var(--color-header);margin-bottom:1rem}.polish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.polish-item{display:flex;align-items:flex-start;gap:.6rem;padding:1.35rem 1.35rem 1.15rem 1rem;border:1px solid rgba(var(--color-primary-rgb),.18);border-radius:14px;cursor:pointer;transition:all .2s;background:var(--color-surface-muted);min-height:120px;color:var(--color-text-contrast);position:relative;box-shadow:var(--shadow-polish)}.polish-item:hover{border-color:rgba(var(--color-primary-rgb),.35);background-color:var(--color-surface-hover);box-shadow:var(--shadow-polish-hover)}.polish-item.selected{border-color:var(--color-primary);background-color:var(--color-surface-selected);box-shadow:var(--shadow-polish-selected)}.polish-item.reserved{opacity:.65;cursor:not-allowed;border-color:rgba(var(--color-slate-rgb),.25);background:var(--color-surface-disabled)}.polish-item.sold{opacity:.5;cursor:not-allowed;border-color:rgba(var(--color-slate-rgb),.2);background:var(--color-surface-disabled)}.polish-checkbox{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:flex-start;padding-top:0}.polish-info{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:.75rem;color:var(--color-text-primary)}.polish-text{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start;width:100%}.polish-brand{font-weight:700;color:var(--color-text-strong);font-size:1.25rem}.polish-name{color:var(--color-text-primary);font-size:1.1rem;font-weight:500}.polish-description{color:var(--color-text-muted);font-size:.95rem}.polish-footer{margin-top:auto;display:flex;justify-content:flex-end;width:100%}.polish-price{color:var(--color-primary-accent);font-weight:700;font-size:1.35rem;text-align:right;width:100%}.reserved-badge{position:absolute;top:.55rem;right:1.05rem;background:var(--color-surface-highlight);color:var(--color-text-danger);padding:.2rem .7rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-reserved-badge)}.sold-badge{position:absolute;top:.55rem;right:1.05rem;background:rgba(var(--color-slate-rgb),.15);color:var(--color-text-muted);padding:.2rem .7rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-reserved-badge)}.polish-checkbox input[type=checkbox]{margin:0;width:1.35rem;height:1.35rem;cursor:pointer;border-radius:6px;border:1px solid rgba(var(--color-primary-rgb),.3);background:var(--color-surface);accent-color:var(--color-primary)}.polish-item.reserved .polish-checkbox input[type=checkbox]{cursor:not-allowed}.polish-checkbox input[type=checkbox]:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.reserve-button{width:100%;padding:1rem;margin-top:1.5rem;background:var(--gradient-primary);color:var(--color-text-on-emphasis);border:none;border-radius:10px;font-size:1.1rem;cursor:pointer;transition:opacity .2s,transform .2s ease;box-shadow:var(--shadow-reserve-button)}.reserve-button:hover{opacity:.95;transform:translateY(-1px)}.reserve-button:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}@media(max-width:1080px){.set-details-content{grid-template-columns:1fr}.photo-frame{min-height:360px}}@media(max-width:900px){.polish-grid{grid-template-columns:1fr;max-width:100%;margin:0 auto}}@media(max-width:640px){.set-details{padding:1.25rem}.photo-frame{padding:.75rem;min-height:280px}.carousel-control{width:36px;height:36px;font-size:1.4rem}.photo-hint{font-size:.85rem}.polish-grid{width:100%}.polish-item{padding:.9rem .9rem .75rem .75rem;min-height:100px;gap:.5rem;width:100%}.polish-brand{font-size:1.05rem}.polish-name{font-size:.95rem}.polish-price{font-size:1.15rem}.polish-checkbox input[type=checkbox]{width:1.15rem;height:1.15rem}.polish-grid{gap:.75rem}.reserved-badge{top:.4rem;right:.75rem;font-size:.7rem;padding:.15rem .6rem}}.modal-overlay{position:fixed;inset:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;will-change:opacity;contain:layout style paint}.modal-content{background:var(--color-surface);border-radius:16px;padding:0;max-width:500px;width:90%;border:1px solid rgba(var(--color-primary-rgb),.18);color:var(--color-text-deep);box-shadow:var(--shadow-modal);will-change:transform;contain:layout style paint;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;background:var(--gradient-primary);color:var(--color-text-on-emphasis);border-radius:16px 16px 0 0;margin:0}.modal-content form{padding:1.5rem;flex:1}.modal-content label{display:block;margin-bottom:1rem;font-weight:600;letter-spacing:.02em;color:var(--color-text-input-label)}.modal-content input,.modal-content textarea{width:100%;padding:.75rem;border:1px solid rgba(var(--color-primary-rgb),.25);border-radius:8px;font-size:1rem;margin-top:.5rem;background:var(--color-surface-tint);color:var(--color-text-deep)}.modal-content input:focus,.modal-content textarea:focus{outline:2px solid rgba(var(--color-primary-rgb),.5);outline-offset:2px;border-color:var(--color-primary)}.modal-content input.error{border-color:var(--color-status-error);border-width:1.5px}.field-error{display:block;margin-top:.5rem;font-size:.875rem;color:var(--color-status-error);font-weight:500}.modal-content input::placeholder,.modal-content textarea::placeholder{color:var(--color-text-placeholder-strong)}.privacy-policy-link{margin:1rem 0 0;font-size:.9rem;color:var(--color-text-secondary);line-height:1.5;text-align:center}.privacy-policy-link a{color:var(--color-primary);text-decoration:underline;text-underline-offset:3px;font-weight:500}.privacy-policy-link a:hover{color:var(--color-primary-accent);text-decoration:none}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.modal-actions button{flex:1;padding:.75rem;border:none;border-radius:6px;font-size:1rem;cursor:pointer}.modal-actions button[type=button]{background:rgba(var(--color-primary-rgb),.08);color:var(--color-text-tertiary);border:1px solid rgba(var(--color-primary-rgb),.22)}.modal-actions button[type=submit]{background:var(--gradient-primary);color:var(--color-text-on-emphasis);border:none;box-shadow:var(--shadow-reserve-button)}.modal-actions button:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.admin{padding:2rem;max-width:1200px;margin:0 auto}.admin h1{color:var(--color-primary);margin-bottom:2rem;text-shadow:2px 2px 4px rgba(var(--color-black-rgb),.3)}.admin-tabs-container{margin-bottom:2rem}.admin-tabs{display:flex;gap:0;background:var(--gradient-app);padding:.5rem .5rem 0 0}.admin-tab{padding:.75rem 1.5rem;background:var(--color-surface-soft);border:none;border-top-left-radius:8px;border-top-right-radius:8px;color:var(--color-text-secondary);font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;position:relative;margin-bottom:0}.admin-tab:not(.active){box-shadow:inset 0 -2px 4px #0000001a}.admin-tab:hover{color:var(--color-text-primary);background:var(--color-surface-hover)}.admin-tab:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.admin-tab.active{background:var(--color-surface);color:var(--color-primary);z-index:1}.sets-table-container{position:relative}.empty-state-container{position:relative;min-height:200px}.create-set-button{position:absolute;top:.5rem;right:.5rem;width:2.5rem;height:2.5rem;padding:.5rem;background:var(--color-primary);color:var(--color-text-on-emphasis);border:none;border-radius:6px;font-size:1.5rem;font-weight:700;cursor:pointer;transition:background .2s,transform .1s;display:flex;align-items:center;justify-content:center;z-index:10;line-height:1}.create-set-button:hover{transform:scale(1.1);background:var(--color-primary-dark)}.create-set-button:active{transform:scale(.95)}.create-set-button:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.set-form-container{background:var(--color-surface-dark);border-radius:12px;padding:2rem;margin-bottom:2rem;border:1px solid var(--color-border-muted);color:var(--color-text-inverse)}.set-form{display:flex;flex-direction:column;gap:1.5rem}.set-form h2{color:var(--color-header);margin-bottom:.5rem}.set-form label{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:var(--color-text-light)}.set-form input,.set-form textarea{padding:.75rem;border:1px solid var(--color-border-muted);border-radius:6px;font-size:1rem;background:var(--color-surface-dark);color:var(--color-text-inverse)}.set-form input:focus,.set-form textarea:focus{outline:2px solid rgba(var(--color-primary-rgb),.5);outline-offset:2px;border-color:var(--color-primary)}.set-form input::placeholder,.set-form textarea::placeholder{color:var(--color-text-placeholder-alt)}.set-form input[type=file]{border:none;padding:.5rem}.set-form input[type=file]::file-selector-button{padding:.75rem 1.5rem;background:var(--color-primary);color:var(--color-text-on-emphasis);border:1px solid var(--color-primary);border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s;margin-right:1rem}.set-form input[type=file]::file-selector-button:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.polishes-section{padding:1rem;background:var(--color-surface-dark);border-radius:8px;border:1px solid var(--color-border-muted)}.polishes-section h3{margin-bottom:1rem;color:var(--color-header)}.polish-form-item{display:grid;grid-template-columns:1.2fr 2fr .8fr 2fr auto;gap:.75rem;margin-bottom:.75rem;align-items:center}.polish-form-item input[type=text],.polish-form-item input[type=number],.polish-form-item textarea{min-width:0}.polish-form-item textarea{resize:vertical;min-height:2.75rem;height:2.75rem}.polish-form-item .reserved-button,.polish-form-item .remove-button,.polish-form-item .polish-status-badge{align-self:center}.remove-button{padding:0;width:2.5rem;height:2.75rem;background:var(--color-status-danger);color:var(--color-text-on-emphasis);border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem}.remove-button:hover{background:var(--color-status-danger-strong)}.remove-button:focus-visible{outline:3px solid rgba(var(--color-danger-strong-rgb),.6);outline-offset:2px}.reserved-button{padding:0;width:2.5rem;height:2.75rem;background:rgba(var(--color-warning-rgb),.4);color:var(--color-status-warning);border:1px solid rgba(var(--color-warning-rgb),.3);border-radius:6px;cursor:default;display:flex;align-items:center;justify-content:center;font-size:1rem;opacity:.7}.reserved-button:disabled{opacity:.7;cursor:default}.reserved-button:hover{opacity:.7;background:rgba(var(--color-warning-rgb),.4)}.reserved-button:focus-visible{outline:3px solid rgba(var(--color-warning-rgb),.4);outline-offset:2px}.add-polish-button{padding:.75rem;background:var(--color-primary);color:var(--color-text-on-emphasis);border:none;border-radius:6px;cursor:pointer;font-weight:700}.add-polish-button:hover{background:var(--color-primary-dark)}.add-polish-button:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.submit-button{padding:1rem;background:var(--gradient-primary);color:var(--color-text-on-emphasis);border:none;border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:opacity .2s}.submit-button:hover{opacity:.9}.submit-button:focus-visible{outline:3px solid rgba(var(--color-white-rgb),.6);outline-offset:2px}.submit-button:disabled{opacity:.6;cursor:not-allowed}.reservations-section{background:var(--color-surface);border-radius:0 0 12px 12px;border-top:none;padding:2rem;color:var(--color-text-primary);box-shadow:0 2px 4px #0000001a}.reservations-section+.reservations-section{margin-top:2rem}.empty-state{text-align:center;color:var(--color-text-muted);padding:2rem}.reservations-list{display:flex;flex-direction:column;gap:1rem}.reservation-card{border:1px solid var(--color-border-input);border-radius:8px;padding:1.5rem;transition:border-color .2s;background:var(--color-surface-soft)}.reservation-card:hover{border-color:var(--color-primary)}.reservation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border-input)}.reservation-header h3{color:var(--color-header);margin-bottom:.25rem}.reservation-date{color:var(--color-text-muted);font-size:.9rem}.validation-badge{padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:700}.validation-badge.validated{background:rgba(var(--color-success-rgb),.2);color:var(--color-status-success-light)}.validation-badge.pending{background:rgba(var(--color-warning-rgb),.2);color:var(--color-status-warning)}.reservation-details p{margin-bottom:.5rem;line-height:1.6;color:var(--color-text-secondary)}.validation-token{font-family:monospace;background:var(--color-surface-muted);padding:.5rem;border-radius:4px;font-size:.9rem;word-break:break-all;border:1px solid var(--color-border-input);color:var(--color-text-primary)}.reserved-polishes-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.polish-reactivate-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-surface-soft);border:2px solid var(--color-status-warning);border-radius:8px}.polish-info{display:flex;gap:1rem;align-items:center}.polish-info strong{color:var(--color-text-primary)}.polish-info span{font-size:.9rem}.reactivate-button{padding:.5rem 1rem;background:var(--color-status-success);color:var(--color-text-on-emphasis);border:none;border-radius:6px;cursor:pointer;font-weight:700;transition:background .2s;display:block;width:100%}.reactivate-button:hover{background:var(--color-status-success-dark)}.reactivate-button:focus-visible{outline:3px solid rgba(var(--color-success-rgb),.6);outline-offset:2px}.reservations-table-container{overflow-x:auto;border-radius:8px;border:1px solid var(--color-border-input)}.reservations-table{width:100%;border-collapse:collapse;background:var(--color-surface)}.reservations-table thead{background:var(--color-surface-soft)}.reservations-table th{padding:1rem;text-align:left;font-weight:600;color:var(--color-header);border-bottom:2px solid var(--color-border-input)}.reservations-table td{padding:1rem;border-bottom:1px solid var(--color-border-input);color:var(--color-text-primary)}.reservations-table tbody tr:hover{background:var(--color-surface-hover)}.reservations-table tbody tr:last-child td{border-bottom:none}.status-badge{padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:700;border:none;cursor:pointer;transition:opacity .2s,transform .1s}.status-badge:hover{opacity:.9;transform:scale(1.05)}.status-badge:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.status-badge.validated{background:rgba(var(--color-success-rgb),.35);color:var(--color-status-success-dark);font-weight:700}.status-badge.pending{background:rgba(var(--color-warning-rgb),.35);color:#b8860b;font-weight:700}.status-badge.unknown{background:var(--color-surface-muted);color:var(--color-text-muted);cursor:default}.status-badge.unknown:hover{transform:none;opacity:1}.status-badge.sold{background:rgba(var(--color-slate-rgb),.2);color:var(--color-text-muted);cursor:default}.status-badge.sold:hover{transform:none;opacity:1}.mark-sold-button{padding:.5rem 1rem;background:var(--color-status-warning);color:var(--color-text-on-emphasis);border:none;border-radius:6px;cursor:pointer;font-weight:700;transition:background .2s;margin-right:.75rem;margin-bottom:.5rem;display:block;width:100%}.mark-sold-button:hover{background:#d39e00}.mark-sold-button:focus-visible{outline:3px solid rgba(var(--color-warning-rgb),.6);outline-offset:2px}.mark-sold-button:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;will-change:opacity;contain:layout style paint}.modal-content{background:var(--color-surface);border-radius:12px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-modal);border:1px solid var(--color-border-input);will-change:transform;contain:layout style paint;padding:0;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--gradient-primary);color:var(--color-text-on-emphasis);border-radius:12px 12px 0 0;margin:0}.modal-header h2{color:var(--color-text-on-emphasis);margin:0;font-size:1.5rem}.modal-close{background:none;border:none;font-size:2rem;color:var(--color-text-on-emphasis);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s,opacity .2s;line-height:1}.modal-close:hover{background:rgba(var(--color-white-rgb),.2);opacity:.9}.modal-close:focus-visible{outline:3px solid rgba(var(--color-white-rgb),.6);outline-offset:2px}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:1.25rem;flex:1}.detail-row{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.detail-row:last-child{margin-bottom:0}.detail-row strong{color:var(--color-header);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.detail-row span{color:var(--color-text-primary);font-size:1rem}.validation-token-text{font-family:monospace;background:var(--color-surface-muted);padding:.75rem;border-radius:4px;word-break:break-all;border:1px solid var(--color-border-input);display:block;font-size:.9rem}.success-modal{max-width:400px}.success-message{color:var(--color-text-primary);font-size:1.1rem;text-align:center;margin-bottom:1.5rem;line-height:1.6}.success-modal-button{width:100%;padding:.75rem;background:var(--gradient-primary);color:var(--color-text-on-emphasis);border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .2s}.success-modal-button:hover{opacity:.9}.error-modal{max-width:400px}.error-modal .error-message{color:#1a1a1a!important;font-size:1.1rem;text-align:center;margin-bottom:1.5rem;line-height:1.6;padding:1rem;background:#fff9e6!important;border-radius:8px;border:1px solid var(--color-status-warning)}.error-modal-button{width:100%;padding:.75rem;background:var(--color-status-warning);color:var(--color-text-primary);border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s}.error-modal-button:hover{background:#d39e00}.polish-sets-section{position:relative;background:var(--color-surface);border-radius:0 0 12px 12px;border-top:none;padding:2rem;color:var(--color-text-primary);box-shadow:0 2px 4px #0000001a}.sets-table{width:100%;border-collapse:collapse;background:var(--color-surface)}.sets-table thead{background:var(--color-surface-soft)}.sets-table th{padding:1rem;text-align:left;font-weight:600;color:var(--color-header);border-bottom:2px solid var(--color-border-input)}.sets-table td{padding:1rem;border-bottom:1px solid var(--color-border-input);color:var(--color-text-primary)}.sets-table tbody tr:hover{background:var(--color-surface-hover)}.sets-table tbody tr:last-child td{border-bottom:none}.action-buttons{display:flex;gap:.5rem;justify-content:flex-start}.action-button{padding:.5rem;border:none;border-radius:6px;cursor:pointer;transition:background .2s,transform .1s;display:flex;align-items:center;justify-content:center;font-size:1rem;width:2.5rem;height:2.5rem}.action-button:hover{transform:scale(1.1)}.action-button:active{transform:scale(.95)}.action-button:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.edit-set-button{background:var(--color-primary);color:var(--color-text-on-emphasis)}.edit-set-button:hover{background:var(--color-primary-dark)}.edit-polishes-button{background:var(--color-status-success);color:var(--color-text-on-emphasis)}.edit-polishes-button:hover{background:var(--color-status-success-dark)}.delete-set-button{background:var(--color-status-danger);color:var(--color-text-on-emphasis)}.delete-set-button:hover{background:var(--color-status-danger-strong)}.create-set-modal{max-width:1000px}.create-set-modal .set-form{padding:1rem 1.25rem;gap:1rem}.create-set-modal .set-form label{color:var(--color-text-input-label);font-weight:600;letter-spacing:.02em}.create-set-modal .set-form input,.create-set-modal .set-form textarea{background:var(--color-surface-tint);color:var(--color-text-deep);border-color:rgba(var(--color-primary-rgb),.25)}.create-set-modal .set-form input:focus,.create-set-modal .set-form textarea:focus{outline:2px solid rgba(var(--color-primary-rgb),.5);outline-offset:2px;border-color:var(--color-primary)}.create-set-modal .set-form input::placeholder,.create-set-modal .set-form textarea::placeholder{color:var(--color-text-placeholder-strong)}.create-set-modal .set-form input[type=file]::file-selector-button{padding:.75rem 1.5rem;background:var(--color-primary);color:var(--color-text-on-emphasis);border:1px solid var(--color-primary);border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s;margin-right:1rem}.create-set-modal .set-form input[type=file]::file-selector-button:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.create-set-modal .polishes-section{background:transparent;border:none;padding:.75rem 0}.create-set-modal .polishes-section h3{margin-bottom:.75rem;color:var(--color-header)}.create-set-modal .polish-form-item input,.create-set-modal .polish-form-item textarea{height:2.75rem;box-sizing:border-box}.create-set-modal .polish-form-item .remove-button{height:2.75rem;align-self:center;margin-top:6px}.edit-set-modal{max-width:600px}.edit-set-modal .set-form label{color:var(--color-text-input-label);font-weight:600;letter-spacing:.02em}.edit-set-modal .set-form input,.edit-set-modal .set-form textarea{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-input)}.edit-set-modal .set-form input::placeholder,.edit-set-modal .set-form textarea::placeholder{color:var(--color-text-placeholder)}.edit-set-modal .set-form input[type=file]::file-selector-button{padding:.75rem 1.5rem;background:var(--color-primary);color:var(--color-text-on-emphasis);border:1px solid var(--color-primary);border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s;margin-right:1rem}.edit-set-modal .set-form input[type=file]::file-selector-button:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.current-photo-preview{margin-top:.5rem;padding:.5rem;background:var(--color-surface-muted);border-radius:4px;display:flex;align-items:center;gap:.5rem}.current-photo-preview span{font-size:.9rem;color:var(--color-text-muted)}.current-photo-preview img{border-radius:4px;border:1px solid var(--color-border-input)}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.cancel-button{padding:.75rem 1.5rem;background:var(--color-surface-muted);color:var(--color-text-primary);border:1px solid var(--color-border-input);border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s}.cancel-button:hover{background:var(--color-surface-hover)}.cancel-button:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.cancel-button:disabled{opacity:.6;cursor:not-allowed}.delete-button{padding:.75rem 1.5rem;background:var(--color-status-danger);color:var(--color-text-on-emphasis);border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s}.delete-button:hover{background:var(--color-status-danger-strong)}.delete-button:focus-visible{outline:3px solid rgba(var(--color-danger-strong-rgb),.6);outline-offset:2px}.confirm-delete-modal{max-width:500px}.delete-warning{color:var(--color-text-primary);font-size:1.1rem;margin-bottom:1rem;line-height:1.6}.delete-warning strong{color:var(--color-header)}.delete-warning-subtext{color:var(--color-text-muted);font-size:.95rem;margin-bottom:1.5rem}.edit-polishes-modal{max-width:1000px}.edit-polishes-modal .set-form label{color:var(--color-text-input-label);font-weight:600;letter-spacing:.02em}.edit-polishes-modal .set-form input,.edit-polishes-modal .set-form textarea{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-input)}.edit-polishes-modal .set-form input::placeholder,.edit-polishes-modal .set-form textarea::placeholder{color:var(--color-text-placeholder)}.edit-polishes-modal .set-form input[type=file]::file-selector-button{padding:.75rem 1.5rem;background:var(--color-primary);color:var(--color-text-on-emphasis);border:1px solid var(--color-primary);border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s;margin-right:1rem}.edit-polishes-modal .set-form input[type=file]::file-selector-button:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.edit-polishes-modal .set-form{padding:1rem 1.25rem;gap:1rem}.edit-polishes-modal .polishes-section{background:transparent;border:none;padding:.75rem 0}.edit-polishes-modal .polishes-section h3{margin-bottom:.75rem}.polish-status-badge{padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:700;background:rgba(var(--color-warning-rgb),.2);color:var(--color-status-warning);text-transform:capitalize;display:flex;align-items:center;justify-content:center;height:2.75rem;box-sizing:border-box}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.login-container{background:var(--color-surface);border-radius:16px;padding:3rem;box-shadow:var(--shadow-login);max-width:450px;width:100%}.login-container h1{color:var(--color-primary);text-align:center;margin-bottom:2rem;font-size:2rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--color-text-label)}.form-group input{padding:.75rem;border:1px solid var(--color-border-input);border-radius:8px;font-size:1rem;transition:border-color .2s;background:var(--color-input-bg);color:var(--color-text-secondary)}.form-group input:focus{outline:none;border-color:var(--color-primary)}.form-group input::placeholder{color:var(--color-text-placeholder)}.error-message{background:var(--color-surface-dark);color:var(--color-status-danger-soft);padding:.75rem 1rem;border-radius:8px;border:1px solid var(--color-border-danger);box-shadow:var(--shadow-outline-danger)}.login-button{padding:1rem;background:var(--gradient-primary);color:var(--color-text-on-emphasis);border:none;border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:opacity .2s}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-button:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.6);outline-offset:2px}.form-group input:focus{outline:2px solid rgba(var(--color-primary-rgb),.5);outline-offset:2px;border-color:var(--color-primary)}.verify-container{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:2rem}.verify-content{max-width:600px;width:100%;padding:2rem;text-align:center;background:#fff;border-radius:12px;box-shadow:0 4px 16px #00000026}.verify-content.success{border:2px solid #4caf50}.verify-content.error{border:2px solid #f44336}@media(max-width:640px){.verify-container{padding:1rem}.verify-content{padding:1.5rem}}.verify-content h2{margin:0 0 1rem;color:#333}.verify-content.success h2{color:#4caf50}.verify-content.error h2{color:#f44336}.verify-content p{margin:.5rem 0;color:#666;line-height:1.6}.confirmation-message{font-size:1.1rem;color:#333;margin-top:1rem}.privacy-policy-container{padding:2rem;max-width:900px;margin:0 auto;color:var(--color-text-primary)}@media(max-width:640px){.privacy-policy-container{padding:1rem}}.privacy-policy-content{background:var(--color-surface);border-radius:12px;padding:2rem;box-shadow:0 4px 16px #00000026}@media(max-width:640px){.privacy-policy-content{padding:1.5rem}}.privacy-policy-content h1{margin:0 0 .5rem;color:var(--color-text-primary);font-size:2rem}@media(max-width:640px){.privacy-policy-content h1{font-size:1.5rem}}.last-updated{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:2rem;font-style:italic}.privacy-policy-content section{margin-bottom:2rem}.privacy-policy-content section:last-child{margin-bottom:0}.privacy-policy-content h2{margin:0 0 1rem;color:var(--color-text-primary);font-size:1.5rem;border-bottom:2px solid rgba(var(--color-primary-rgb),.2);padding-bottom:.5rem}@media(max-width:640px){.privacy-policy-content h2{font-size:1.25rem}}.privacy-policy-content p{margin:0 0 1rem;color:var(--color-text-secondary);line-height:1.7}.privacy-policy-content ul{margin:0 0 1rem 1.5rem;padding:0;color:var(--color-text-secondary);line-height:1.7}.privacy-policy-content li{margin-bottom:.75rem}.privacy-policy-content li:last-child{margin-bottom:0}.privacy-policy-content a{color:var(--color-primary);text-decoration:underline;text-underline-offset:3px;font-weight:500}.privacy-policy-content a:hover{color:var(--color-primary-accent);text-decoration:none}.privacy-policy-content strong{color:var(--color-text-primary);font-weight:600}.app{min-height:100vh}.main-content{padding:20px;max-width:1400px;margin:0 auto}@media(max-width:640px){.main-content{padding:20px 0}}*{margin:0;padding:0;box-sizing:border-box}:root{--font-display: "Chewy", "Segoe UI", "Roboto", sans-serif;--font-header: "Roboto Condensed", "Segoe UI", "Roboto", sans-serif;--font-body: "Rubik", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--heading-letter-spacing: .04em;--color-header: #472f74;--color-text-primary: #2b2a3d;--color-text-secondary: #5d5b77;--color-text-tertiary: #3d3a5b;--color-text-muted: #6f6d8f;--color-text-subtle: #686691;--color-text-contrast: #302f46;--color-text-deep: #2f2d44;--color-text-caption: #4b3f94;--color-text-control: #4c3fa0;--color-text-label: #444444;--color-text-input-label: #43405f;--color-text-strong: #2f2a58;--color-text-light: #e0e0e0;--color-text-soft: #c8c8d4;--color-text-inverse: #f5f5f5;--color-text-inverse-soft: #f7f7f7;--color-text-on-emphasis: #ffffff;--color-text-link: #d6dcff;--color-text-placeholder: #9a9aa6;--color-text-placeholder-alt: #9999a5;--color-text-placeholder-strong: #8f8dac;--color-text-danger: #94333a;--color-primary: #667eea;--color-primary-dark: #764ba2;--color-primary-accent: #5f53d6;--color-primary-soft: #e0e3ff;--color-brand-lavender: #e6e6fa;--color-surface: #ffffff;--color-surface-soft: #fafaff;--color-surface-muted: #f9f9ff;--color-surface-hover: #f2f3ff;--color-surface-selected: #eef0ff;--color-surface-tint: #f5f6ff;--color-surface-disabled: #f2f2f6;--color-surface-highlight: #ffd7d7;--color-surface-dark: #222222;--color-surface-darker: #1c1c1c;--color-surface-overlay: rgba(0, 0, 0, .5);--color-border-light: #a3a3a3;--color-border-muted: #444444;--color-border-strong: #667eea;--color-border-input: #a2a2a2;--color-border-danger: #cc3333;--color-status-success: #28a745;--color-status-success-dark: #218838;--color-status-success-border: #2f8f4b;--color-status-success-soft: #d4edda;--color-status-success-light: #9be7b4;--color-status-error: #a94442;--color-status-error-soft: #f8d7da;--color-status-danger: #ff6b6b;--color-status-danger-strong: #ff5252;--color-status-danger-soft: #f3b9b9;--color-status-warning: #ffc107;--color-status-warning-soft: #ffe59a;--color-status-info-soft: #d6dcff;--color-neutral-100: #f5f5f5;--color-neutral-150: #f7f7f7;--color-neutral-200: #e8e8e8;--color-neutral-card-text: #e8e8f0;--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);--color-background-dark-start: #1f1e21;--color-background-dark-end: #352c48;--gradient-app: linear-gradient(135deg, var(--color-background-dark-start) 0%, var(--color-background-dark-end) 100%);--shadow-nav: 0 2px 10px rgba(0, 0, 0, .1);--shadow-set-card: 0 4px 16px rgba(62, 62, 62, .18);--shadow-set-card-hover: 0 12px 28px rgba(0, 0, 0, .22);--shadow-set-details: 0 24px 48px rgba(38, 31, 72, .18);--shadow-photo-base: 0 12px 28px rgba(102, 126, 234, .12);--shadow-photo-caption: 0 6px 18px rgba(35, 31, 67, .15);--shadow-carousel-dot: 0 4px 10px rgba(60, 55, 108, .1);--shadow-polish: 0 8px 22px rgba(102, 126, 234, .1);--shadow-polish-hover: 0 14px 28px rgba(102, 126, 234, .16);--shadow-polish-selected: 0 16px 32px rgba(102, 126, 234, .18);--shadow-reserve-button: 0 12px 24px rgba(102, 126, 234, .25);--shadow-reserved-badge: 0 4px 12px rgba(224, 142, 142, .3);--shadow-modal: 0 18px 40px rgba(38, 31, 72, .18);--shadow-login: 0 10px 40px rgba(0, 0, 0, .2);--shadow-outline-danger: inset 0 0 0 1px rgba(195, 51, 51, .2);--color-white-rgb: 255, 255, 255;--color-black-rgb: 0, 0, 0;--color-primary-rgb: 102, 126, 234;--color-primary-dark-rgb: 118, 75, 162;--color-periwinkle-rgb: 118, 126, 214;--color-indigo-deep-rgb: 38, 31, 72;--color-neutral-shadow-rgb: 62, 62, 62;--color-indigo-mid-rgb: 62, 56, 115;--color-indigo-dot-rgb: 60, 55, 108;--color-slate-rgb: 97, 102, 142;--color-rose-soft-rgb: 224, 142, 142;--color-danger-strong-rgb: 195, 51, 51;--color-success-rgb: 40, 167, 69;--color-warning-rgb: 255, 193, 7}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--gradient-app);min-height:100vh}input,textarea,select,button{font-family:var(--font-body)}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-header);font-weight:700;letter-spacing:var(--heading-letter-spacing);color:var(--color-header)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.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}
