@import"https://fonts.googleapis.com/css2?family=Monoton&family=Quicksand:wght@500;700&display=swap";:root{--color-bg: #f8fbff;--color-primary: #4a90e2;--color-secondary: #dceafd;--color-accent: #b0d0f0;--color-text: #1f3b57;--color-muted: #7a8ca5;--color-danger: #e57373;--color-success: #1e7924}body.dark{--color-bg: #0f1923;--color-primary: #4a90e2;--color-secondary: #1a2a3a;--color-accent: #1e3a5f;--color-text: #e8f0fe;--color-muted: #7a8ca5;--color-danger: #e57373;--color-success: #4caf50}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:62.5%}body{font-size:1.6rem;font-family:Quicksand,sans-serif;color:var(--color-text);background-color:var(--color-bg);line-height:2.6}.app{display:flex;flex-direction:column;min-height:100vh}h1{text-align:center;background-color:var(--color-primary);color:#fff;font-family:Monoton,cursive;font-size:4rem;text-transform:uppercase;font-weight:400;padding:2rem 1rem;word-spacing:1rem;letter-spacing:-1px}@media (min-width: 768px){h1{font-size:6rem}}h3{font-size:2rem;margin-bottom:.5rem;text-align:center;width:100%;color:var(--color-text)}button,select,input{background-color:var(--color-secondary);color:var(--color-text);font-family:inherit;border:none;border-radius:999px;padding:1rem 2rem;font-weight:700;font-size:1.6rem;cursor:pointer;flex:1;min-width:120px;max-width:220px}@media (min-width: 768px){button,select,input{font-size:1.8rem}}body.dark h1{background-color:#0d1f2d}.logo-wrapper{display:flex;align-items:center;justify-content:center;position:relative;background-color:var(--color-primary);padding:2rem 1rem}@media (max-width: 768px){.logo-wrapper{flex-direction:column;gap:.6rem;padding:1.4rem 1rem}}.logo-right{position:absolute;right:2rem;display:flex;align-items:center;gap:1.2rem}@media (max-width: 768px){.logo-right{position:static;flex-direction:row;justify-content:center}}.user-greeting{color:#fff;font-size:1.3rem;font-weight:700;opacity:.9}@media (max-width: 768px){.user-greeting{font-size:1.2rem}}.logout-btn{background-color:#fff;color:var(--color-primary);border:none;border-radius:999px;padding:.6rem 1.6rem;font-size:1.4rem;font-weight:700;cursor:pointer;min-width:unset;max-width:unset;flex:unset;font-family:inherit;transition:background-color .2s}.logout-btn:hover{background-color:var(--color-secondary)}.toolbar{background-color:var(--color-primary);padding:.8rem 2rem;display:flex;justify-content:flex-end;align-items:center}.auth-dark-toggle{position:fixed;top:1.5rem;right:2rem;z-index:100}.auth-dark-toggle .dark-toggle-btn{background-color:var(--color-primary);color:#fff;border:2px solid white}.auth-dark-toggle .dark-toggle-btn:hover{background-color:var(--color-text)}body.dark .auth-dark-toggle .dark-toggle-btn{background-color:#ffffff26;color:#fff;border:2px solid rgba(255,255,255,.3)}.dark-toggle-btn{background-color:#ffffff26;color:#fff;border:none;border-radius:999px;padding:.6rem 1.4rem;font-size:1.3rem;font-weight:700;cursor:pointer;min-width:unset;max-width:unset;flex:unset;font-family:inherit;transition:background-color .2s}.dark-toggle-btn:hover{background-color:#ffffff40}body.dark .logo-wrapper,body.dark .toolbar{background-color:#0d1f2d}body.dark .auth-dark-toggle .dark-toggle-btn{background-color:#ffffff26;color:#fff}body.dark .auth-dark-toggle .dark-toggle-btn:hover{background-color:#ffffff40}.add-form{background-color:var(--color-accent);padding:2.5rem 1rem;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem}.add-form button{background-color:var(--color-success);color:#fff;text-transform:uppercase}.add-form button:hover{background-color:var(--color-accent);border:2px solid var(--color-success);color:var(--color-success)}@media (min-width: 768px){.add-form{flex-wrap:nowrap}.add-form h3{width:auto;margin-bottom:0}}body.dark .add-form{background-color:#1e3a5f}.list{background-color:#fff;padding:3rem 1rem;flex:1;display:flex;flex-direction:column;gap:2rem;align-items:center;border-top:1px solid var(--color-accent);border-bottom:1px solid var(--color-accent)}.list ul{list-style:none;width:100%;max-width:1200px;display:flex;flex-direction:column;gap:1.6rem;padding:0}.list li{background-color:var(--color-secondary);padding:1.2rem 2rem;border-radius:1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.list li span{flex:3}@media (max-width: 388px){.list li{flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.8rem;padding:1.2rem 1rem}.list li span{flex:unset}}.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.actions button,.actions select{background-color:var(--color-secondary);color:var(--color-text);text-transform:uppercase;font-size:1.4rem;font-weight:700;padding:.8rem 2rem;border-radius:999px;margin-top:1rem}.actions .btn-clear{background-color:var(--color-muted);color:var(--color-bg)}.actions .btn-clear:hover{background-color:var(--color-text)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;gap:1rem}.empty-state h3{color:var(--color-text);font-size:2rem}.empty-icon{width:8rem;height:8rem;color:var(--color-accent);margin-bottom:1rem}.empty-text{color:var(--color-muted);font-size:1.5rem;max-width:400px;line-height:1.6}body.dark .list{background-color:#0f1923}body.dark .list li{background-color:#1a2a3a}.drag-handle{cursor:grab;color:var(--color-muted);font-size:1.8rem;padding:0 .4rem;-webkit-user-select:none;user-select:none;flex:unset;min-width:unset;max-width:unset}.drag-handle:active{cursor:grabbing}.check-btn{width:2.8rem;height:2.8rem;min-width:unset;max-width:unset;flex:unset;border-radius:50%;border:2.5px solid var(--color-accent);background-color:#fff;color:#fff;font-size:1.6rem;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}.check-btn:hover{border-color:var(--color-primary)}.check-btn.check-btn-checked{background-color:var(--color-primary);border-color:var(--color-primary)}.item-note{font-style:italic;margin-left:.5rem;color:var(--color-muted)}.item-packed span{text-decoration:line-through;opacity:.5}.edit-btn{background:none;border:none;font-size:1.6rem;padding:.4rem .8rem;cursor:pointer;min-width:unset;max-width:unset;flex:unset;opacity:.6;transition:opacity .2s}.edit-btn:hover{opacity:1}.delete-btn{background:none;border:none;font-size:1.6rem;padding:.4rem .8rem;cursor:pointer;min-width:unset;max-width:unset;flex:unset;opacity:.6;transition:opacity .2s}.delete-btn:hover{opacity:1}.item-editing{background-color:var(--color-secondary);padding:1.2rem 2rem;border-radius:1.2rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;border:2px solid var(--color-primary)}.edit-input{flex:2;min-width:100px;max-width:100%;border-radius:.8rem;border:1.5px solid var(--color-accent);background-color:#fff;padding:.6rem 1.2rem;font-size:1.5rem}.edit-select{flex:unset;min-width:unset;max-width:unset;width:6rem;border-radius:.8rem;border:1.5px solid var(--color-accent);background-color:#fff;padding:.6rem 1rem;font-size:1.5rem}.edit-save-btn{background-color:var(--color-success);color:#fff;border-radius:50%;width:3rem;height:3rem;min-width:unset;max-width:unset;flex:unset;padding:0;font-size:1.4rem;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer}.edit-cancel-btn{background-color:var(--color-muted);color:#fff;border-radius:50%;width:3rem;height:3rem;min-width:unset;max-width:unset;flex:unset;padding:0;font-size:1.4rem;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer}body.dark .check-btn{background-color:#1a2a3a;border-color:var(--color-accent)}body.dark .check-btn.check-btn-checked{background-color:var(--color-primary);border-color:var(--color-primary)}body.dark .edit-input,body.dark .edit-select{background-color:#0f1923;color:var(--color-text);border-color:var(--color-accent)}.list li{transition:background-color .2s}.list li.item-packed-row{background-color:#b0d0f0}body.dark .list li.item-packed-row{background-color:#4a90e233}.stats{background-color:var(--color-primary);color:#fff;text-align:center;font-weight:700;padding:2.4rem 1rem;font-size:1.6rem}.complete{background-color:var(--color-success);color:#fff;padding:1rem 2rem;border-radius:10rem;font-weight:700}body.dark .stats{background-color:#0d1f2d;color:var(--color-text)}.app-footer{background-color:var(--color-text);color:#ffffffb3;text-align:center;padding:1.6rem 1rem;font-size:1.3rem;display:flex;flex-direction:column;align-items:center;gap:.6rem}.app-footer .auth-link{color:#ffffffb3;font-size:1.3rem}.app-footer .auth-link:hover{color:#fff}.footer-link{color:#fff;text-decoration:none}.footer-link:hover{color:var(--color-accent)}body.dark .app-footer{background-color:#0a1520}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg);padding:2rem}.auth-box{background-color:#fff;border-radius:2rem;padding:4rem 3.2rem;width:100%;max-width:440px;box-shadow:0 8px 32px #4a90e21f}.auth-box h2{font-size:2.8rem;color:var(--color-text);text-align:center;margin-bottom:.4rem}.auth-box.auth-box-centered{text-align:center}.auth-icon{font-size:5rem;line-height:1}.auth-subtitle{text-align:center;color:var(--color-muted);font-size:1.5rem;margin-bottom:3rem;line-height:1.5}.auth-field{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.8rem}.auth-field label{font-size:1.4rem;font-weight:700;color:var(--color-text)}.auth-field input{width:100%;max-width:100%;border-radius:1rem;border:2px solid var(--color-accent);background-color:var(--color-bg);padding:1rem 1.6rem;font-size:1.6rem;color:var(--color-text);transition:border-color .2s;flex:unset;min-width:unset}.auth-field input:focus{outline:none;border-color:var(--color-primary)}@media (max-width: 768px){.auth-field input{font-size:16px}}.auth-hint{font-size:1.2rem;color:var(--color-muted);line-height:1.4}.auth-btn{width:100%;max-width:100%;background-color:var(--color-primary);color:#fff;border:none;border-radius:999px;padding:1.2rem 2rem;font-size:1.6rem;font-weight:700;cursor:pointer;text-transform:uppercase;font-family:inherit;flex:unset;min-width:unset;margin-top:.5rem;transition:background-color .2s}.auth-btn:hover:not(:disabled){background-color:var(--color-text)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{background-color:#fdeaea;color:var(--color-danger);border-radius:1rem;padding:1rem 1.6rem;font-size:1.4rem;margin-bottom:1.6rem;text-align:center}.auth-success{background-color:#eafaf1;color:var(--color-success);border-radius:1rem;padding:1rem 1.6rem;font-size:1.4rem;margin-bottom:1.6rem;text-align:center}.auth-links{display:flex;flex-direction:column;align-items:center;gap:.8rem;margin-top:2rem}.auth-link{background:none;border:none;color:var(--color-primary);font-size:1.4rem;font-weight:700;cursor:pointer;font-family:inherit;padding:0;min-width:unset;max-width:unset;flex:unset}.auth-link:hover{color:var(--color-text)}body.dark .auth-box{background-color:#1a2a3a}body.dark .auth-field input{background-color:#0f1923;color:var(--color-text);border-color:var(--color-accent)}body.dark .auth-btn:hover:not(:disabled){background-color:var(--color-accent)}.auth-btn-spinner{display:inline-block;width:1.8rem;height:1.8rem;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}body.dark .auth-error{background-color:#e5737326;color:#ef9a9a;border:1px solid rgba(229,115,115,.3)}body.dark .auth-success{background-color:#4caf5026;color:#81c784;border:1px solid rgba(76,175,80,.3)}.logout-spinner{border-color:#4a90e266;border-top-color:var(--color-primary)}.auth-layout{min-height:100vh;display:flex;flex-direction:row;background-color:var(--color-bg);position:relative}@media (max-width: 768px){.auth-layout{flex-direction:column}}.auth-layout-footer{position:absolute;bottom:1.5rem;left:0;width:50%;display:flex;flex-direction:column;align-items:center;gap:.4rem;font-size:1.3rem}@media (max-width: 768px){.auth-layout-footer{position:static;width:100%;order:3;padding:2rem 1rem;text-align:center;align-items:center}}.auth-left{flex:1;display:flex;align-items:center;justify-content:center;padding:4rem 2rem}@media (max-width: 768px){.auth-left{order:1}}.auth-right{flex:1;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);padding:4rem 3rem}@media (max-width: 768px){.auth-right{order:2;padding:3rem 2rem}}.auth-hero{max-width:440px}.auth-hero-title{font-size:3.2rem;color:#fff;font-weight:700;line-height:1.3;margin-bottom:1.6rem;text-align:left}.auth-hero-subtitle{font-size:1.6rem;color:#fffc;line-height:1.6;margin-bottom:3rem}.auth-features{list-style:none;display:flex;flex-direction:column;gap:1.4rem}.auth-features li{display:flex;align-items:center;gap:1.2rem;font-size:1.5rem;color:#fff;font-weight:600}.auth-feature-icon{width:2.4rem;height:2.4rem;border-radius:50%;background-color:#fff3;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}body.dark .auth-right{background-color:#0d1f2d}.policy-wrapper{min-height:100vh;background-color:var(--color-bg);padding:4rem 2rem;display:flex;justify-content:center}.policy-box{max-width:720px;width:100%}.policy-box h2{font-size:3rem;color:var(--color-text);margin-bottom:.4rem}.policy-date{color:var(--color-muted);font-size:1.4rem;margin-bottom:3rem}.policy-section{margin-bottom:3rem}.policy-section h3{font-size:1.8rem;color:var(--color-text);margin-bottom:1rem;text-align:left;width:auto}.policy-section p{font-size:1.5rem;color:var(--color-text);line-height:1.7;margin-bottom:1rem}.policy-section ul{padding-left:2rem;display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.policy-section ul li{font-size:1.5rem;color:var(--color-text);background:none;padding:0;border-radius:0;display:list-item}.policy-section a{color:var(--color-primary);text-decoration:underline}.policy-back{display:inline-block;margin-bottom:2rem}.footer-credit{font-size:1.3rem;color:var(--color-muted)}.footer-credit .footer-link{color:var(--color-muted);text-decoration:none}.footer-credit .footer-link:hover{color:var(--color-text)}.cookie-banner{position:fixed;bottom:0;left:0;right:0;background-color:var(--color-text);color:#fff;padding:1.6rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;z-index:1001;flex-wrap:wrap}@media (max-width: 768px){.cookie-banner{flex-direction:column;align-items:flex-start}}.cookie-text{font-size:1.4rem;color:#ffffffd9;line-height:1.5;flex:1}.cookie-btn{background-color:var(--color-primary);color:#fff;border:none;border-radius:999px;padding:.8rem 2.4rem;font-size:1.4rem;font-weight:700;cursor:pointer;min-width:unset;max-width:unset;flex:unset;font-family:inherit;white-space:nowrap;transition:background-color .2s}.cookie-btn:hover{background-color:var(--color-accent)}body.dark .cookie-banner{background-color:#0a1520}.cookie-policy-link{background:none;border:none;color:var(--color-primary);font-size:inherit;font-weight:700;cursor:pointer;padding:0;min-width:unset;max-width:unset;flex:unset;text-decoration:underline;font-family:inherit}.toast{position:fixed;bottom:2rem;right:2rem;display:flex;align-items:center;gap:1.2rem;padding:1.2rem 2rem;border-radius:1rem;font-size:1.5rem;font-weight:700;box-shadow:0 4px 16px #0000001f;z-index:1000;animation:slideIn .3s ease}.toast.toast-error{background-color:#fdeaea;color:var(--color-danger);border:1px solid var(--color-danger)}.toast.toast-success{background-color:#eafaf1;color:var(--color-success);border:1px solid var(--color-success)}.toast-close{background:none;border:none;cursor:pointer;font-size:1.4rem;padding:0;min-width:unset;max-width:unset;flex:unset;color:inherit}.dialog-overlay{position:fixed;inset:0;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:999}.dialog-box{background-color:#fff;border-radius:1.6rem;padding:3rem 2.4rem;max-width:400px;width:90%;box-shadow:0 8px 32px #00000029;display:flex;flex-direction:column;gap:2rem}.dialog-message{font-size:1.7rem;font-weight:700;color:var(--color-text);text-align:center;line-height:1.5}.dialog-actions{display:flex;gap:1rem;justify-content:center}.dialog-btn{flex:1;max-width:160px;padding:1rem 2rem;border-radius:999px;font-size:1.5rem;font-weight:700;cursor:pointer;border:none;font-family:inherit;min-width:unset}.dialog-btn.dialog-btn-cancel{background-color:var(--color-secondary);color:var(--color-text)}.dialog-btn.dialog-btn-cancel:hover{background-color:var(--color-accent)}.dialog-btn.dialog-btn-confirm{background-color:var(--color-danger);color:#fff}.dialog-btn.dialog-btn-confirm:hover{background-color:#c62828}body.dark .dialog-box{background-color:#1a2a3a}.spinner-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg)}.spinner{width:48px;height:48px;border:5px solid var(--color-accent);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-wrapper{display:flex;flex-direction:column;gap:1.6rem;width:100%;max-width:1200px;padding:3rem 1rem}.skeleton-item{background-color:var(--color-secondary);border-radius:1.2rem;padding:1.2rem 2rem;display:flex;align-items:center;gap:1rem;height:6rem;overflow:hidden;position:relative}.skeleton-item:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:shimmer 1.4s infinite}.skeleton-circle{width:2.8rem;height:2.8rem;border-radius:50%;background-color:var(--color-accent);flex-shrink:0}.skeleton-line{height:1.4rem;border-radius:999px;background-color:var(--color-accent)}.skeleton-line.skeleton-line-long{width:60%}.skeleton-line.skeleton-line-short{width:30%}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}body.dark .skeleton-item{background-color:#1a2a3a}body.dark .skeleton-item:after{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.05) 50%,transparent 100%)}body.dark .skeleton-circle,body.dark .skeleton-line{background-color:#1e3a5f}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-20px)}}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.item-enter{animation:fadeInDown .25s ease forwards}.item-exit{animation:fadeOutLeft .25s ease forwards}
