@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@500;600;700&display=swap";:root{--font-sans:"Inter", sans-serif;--font-display:"Outfit", sans-serif;--color-bg-dark:#0f172a;--color-glass:#ffffff1a;--color-glass-hover:#ffffff26;--color-glass-border:#fff3;--color-glass-solid:#0f172ad9;--color-text-primary:#f8fafc;--color-text-secondary:#cbd5e1;--color-text-muted:#94a3b8;--color-accent:#38bdf8;--color-accent-hover:#0284c7;--color-danger:#ef4444;--color-danger-hover:#dc2626;--radius-lg:24px;--radius-md:16px;--radius-sm:8px;--shadow-glow:0 0 20px #38bdf84d;--shadow-glass:0 8px 32px 0 #0000004d}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--color-bg-dark);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}.app-background{z-index:-1;filter:brightness(.7)contrast(1.1);background-image:url(/background.png);background-position:50%;background-size:cover;width:100vw;height:100vh;position:fixed;top:0;left:0}.app-container{flex-direction:column;max-width:1400px;min-height:100vh;margin:0 auto;padding:2rem;display:flex}.header{text-align:center;font-family:var(--font-display);margin-bottom:3rem}.header h1{background:linear-gradient(135deg,#fff,#cbd5e1);-webkit-text-fill-color:transparent;text-shadow:0 4px 12px #0000001a;-webkit-background-clip:text;font-size:2.25rem;font-weight:700}.header p{color:var(--color-text-secondary);margin-top:.5rem;font-size:1.1rem}.glass-panel{background:var(--color-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-glass)}.btn{font-family:var(--font-sans);border-radius:var(--radius-sm);cursor:pointer;background:var(--color-accent);color:#fff;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:all .2s;display:inline-flex}.btn:hover{background:var(--color-accent-hover);transform:translateY(-2px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-danger{background:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-hover)}.btn-icon{background:var(--color-glass);border:1px solid var(--color-glass-border);color:var(--color-text-primary);border-radius:50%;justify-content:center;align-items:center;padding:.5rem;display:flex}.btn-icon:hover{background:var(--color-glass-hover);transform:scale(1.1)}.carrier-view{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.carrier-grid{flex-wrap:wrap;justify-content:center;gap:2rem;width:100%;margin-bottom:3rem;display:flex}.carrier-item{flex-direction:column;align-items:center;gap:1rem;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative}.carrier-item:hover{transform:translateY(-10px)}.carrier-card-wrapper{border-radius:var(--radius-lg);border:2px solid var(--color-glass-border);flex-direction:column;width:160px;height:185px;display:flex;position:relative;overflow:visible;box-shadow:0 10px 30px #00000080}.carrier-image-wrap{aspect-ratio:1;border-radius:var(--radius-lg) var(--radius-lg) 0 0;cursor:pointer;-webkit-backdrop-filter:blur(8px);width:100%;box-shadow:none;background:#ffffff0d;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.carrier-image-wrap img{object-fit:contain;width:90%;height:90%;transition:transform .3s}.carrier-item:hover .carrier-image-wrap img{transform:scale(1.05)}.carrier-name{font-family:var(--font-display);text-shadow:0 2px 4px #00000080;font-size:1.2rem;font-weight:600}.delete-carrier-btn{background:var(--color-danger);color:#fff;cursor:pointer;opacity:0;z-index:10;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;top:12px;right:12px;transform:scale(.8);box-shadow:0 4px 12px #ef444459}.carrier-card-wrapper:hover .delete-carrier-btn{opacity:1;transform:scale(1)}.delete-carrier-btn:disabled{cursor:not-allowed;background:#64748b}.delete-carrier-btn:hover:not(:disabled){background:var(--color-danger-hover);transform:scale(1.18)rotate(90deg);box-shadow:0 6px 16px #ef444480}.add-carrier-wrap{margin-top:2rem}.detail-view{width:100%;max-width:1000px;margin:0 auto}.detail-header{align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.detail-header h2{font-family:var(--font-display);font-size:2rem}.category-section{margin-bottom:2rem;padding:1.5rem}.category-title{font-family:var(--font-display);border-bottom:1px solid var(--color-glass-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.25rem;display:flex}.item-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.item-card{border-radius:var(--radius-sm);border:1px solid var(--color-glass-border);background:#ffffff0d;align-items:center;gap:1rem;padding:1rem;transition:background .2s;display:flex}.item-card:hover{background:#ffffff1a}.item-checkbox{cursor:pointer;width:24px;height:24px;accent-color:var(--color-accent)}.item-info{flex-direction:column;flex:1;display:flex}.item-name{font-size:1rem;font-weight:500}.item-name.packed{color:var(--color-text-muted);text-decoration:line-through}.item-thumbnail{object-fit:cover;cursor:pointer;background:#000;border-radius:4px;width:40px;height:40px}.item-actions{gap:.5rem;display:flex}.add-item-form{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1rem;display:flex}.input,.select{border-radius:var(--radius-sm);border:1px solid var(--color-glass-border);color:var(--color-text-primary);font-family:var(--font-sans);background:#0003;padding:.75rem 1rem}.input:focus,.select:focus{border-color:var(--color-accent);outline:none}.file-input{display:none}.file-label{cursor:pointer;border:1px dashed var(--color-glass-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);padding:.5rem}.file-label:hover{border-color:var(--color-accent);color:var(--color-accent)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s forwards fadeIn}[title]{position:relative}.modal-backdrop{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#0f172aa6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-glass-solid);border:1px solid var(--color-glass-border);flex-direction:column;width:74vw;min-width:280px;max-width:720px;max-height:70vh;padding:1.25rem;display:flex;overflow:visible;box-shadow:0 20px 50px #0006}.modal-header{border-bottom:1px solid var(--color-glass-border);justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.modal-header h2{font-family:var(--font-display);color:var(--color-text-primary);align-items:center;gap:.5rem;font-size:1.2rem;font-weight:600;display:flex}.modal-close-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.15rem;transition:all .2s;display:flex}.modal-close-btn:hover{color:var(--color-danger);background:#ffffff1a}.mini-add-form{border-radius:var(--radius-sm);border:1px solid var(--color-glass-border);background:#00000040;align-items:center;gap:.35rem;margin-bottom:.75rem;padding:.35rem;display:flex}.mini-select{border:1px solid var(--color-glass-border);width:96px;color:var(--color-text-primary);cursor:pointer;background:#0f172a;border-radius:4px;outline:none;flex-shrink:0;padding:.35rem .2rem;font-size:.8rem}.mini-select option{color:var(--color-text-primary);background:#0f172a;font-size:.72rem}.mini-input{border:1px solid var(--color-glass-border);min-width:0;color:var(--color-text-primary);background:#0f172a;border-radius:4px;outline:none;flex:1;padding:.35rem .5rem;font-size:.8rem}.mini-input:focus,.mini-select:focus{border-color:var(--color-accent)}.qty-counter-input{border:1px solid var(--color-glass-border);background:#0f172a;border-radius:4px;align-items:center;height:28px;display:flex;overflow:hidden}.qty-adjust{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:22px;height:100%;font-size:.85rem;transition:background .15s;display:flex}.qty-adjust:hover{color:var(--color-accent);background:#ffffff1a}.qty-display-input{text-align:center;min-width:24px;color:var(--color-text-primary);font-size:.8rem;font-weight:600}.mini-file-label{cursor:pointer;border:1px dashed var(--color-glass-border);color:var(--color-text-secondary);white-space:nowrap;background:#0f172a;border-radius:4px;justify-content:center;align-items:center;padding:.35rem .5rem;font-size:.85rem;transition:all .2s;display:flex}.mini-file-label:hover{border-color:var(--color-accent);color:var(--color-accent)}.mini-btn{cursor:pointer;background:var(--color-accent);color:#fff;white-space:nowrap;border:none;border-radius:4px;padding:.35rem .75rem;font-size:.8rem;font-weight:600;transition:background .2s}.mini-btn:hover{background:var(--color-accent-hover)}.modal-list-container{flex:1;padding-right:4px;overflow-y:auto}.modal-list-container::-webkit-scrollbar{width:5px}.modal-list-container::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.modal-list-container::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.modal-list-container::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.empty-items-placeholder{text-align:center;color:var(--color-text-muted);padding:2.5rem 1rem;font-size:.85rem;line-height:1.5}.compact-category-section{margin-bottom:.5rem}.compact-category-title{font-family:var(--font-display);color:var(--color-accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem;padding-left:.25rem;font-size:.75rem;font-weight:600}.compact-item-list{flex-direction:column;gap:.15rem;display:flex}.compact-item-row{background:#ffffff05;border:1px solid #ffffff0a;border-radius:4px;align-items:center;gap:.35rem;padding:.25rem .4rem;transition:all .15s;display:flex}.compact-item-row:hover{background:#ffffff0f;border-color:#ffffff1a}.compact-item-row.packed-row{opacity:.55;background:#00000026}.col-check{flex:0 0 20px;justify-content:center;align-items:center;display:flex}.compact-checkbox{cursor:pointer;width:13px;height:13px;accent-color:var(--color-accent)}.col-thumb{flex:0 0 24px;justify-content:center;align-items:center;display:flex}.compact-thumb{object-fit:cover;cursor:pointer;border:1px solid #ffffff1a;border-radius:3px;width:22px;height:22px;transition:transform .15s}.compact-thumb:hover{z-index:10;transform:scale(1.3)}.compact-thumb-placeholder{width:22px;height:22px;color:var(--color-text-muted);background:#ffffff0d;border-radius:3px;justify-content:center;align-items:center;font-size:.95rem;line-height:1;display:flex}.col-name{flex:1;align-items:center;min-width:0;display:flex}.compact-name-text{white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-primary);font-size:.8rem;font-weight:500;overflow:hidden}.compact-name-text.packed-text{color:var(--color-text-muted);text-decoration:line-through}.col-qty{flex:0 0 58px;justify-content:center;align-items:center;display:flex}.qty-counter-row{border:1px solid var(--color-glass-border);background:#00000059;border-radius:3px;align-items:center;height:18px;display:flex;overflow:hidden}.qty-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:15px;height:100%;font-size:.7rem;transition:background .15s;display:flex}.qty-btn:hover{color:var(--color-accent);background:#ffffff26}.qty-val{text-align:center;min-width:14px;color:var(--color-text-primary);font-size:.75rem;font-weight:600}.col-actions{flex:0 0 46px;justify-content:flex-end;gap:.2rem;display:flex}.mini-icon-btn{cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:20px;height:20px;padding:2px;transition:all .15s;display:flex}.mini-icon-btn svg{width:13px;height:13px}.mini-icon-btn:hover{background:#ffffff1a;transform:scale(1.15)}.mini-icon-btn.delete{color:#f87171}.mini-icon-btn.delete:hover{color:#ef4444;background:#ef444440}.mini-icon-btn.edit{color:#38bdf8}.mini-icon-btn.edit:hover{color:#7dd3fc;background:#38bdf833}.mini-icon-btn.save{color:#34d399}.mini-icon-btn.save:hover{color:#10b981;background:#10b98133}.mini-icon-btn.cancel{color:#94a3b8}.mini-icon-btn.cancel:hover{color:#cbd5e1;background:#ffffff1a}.edit-inline-select{border:1px solid var(--color-accent);color:#fff;background:#0f172a;border-radius:3px;outline:none;max-width:80px;padding:2px 4px;font-size:.8rem}.edit-inline-select option{color:#fff;background:#0f172a;font-size:.68rem}.edit-inline-input{border:1px solid var(--color-accent);color:#fff;background:#0f172a;border-radius:3px;outline:none;flex:1;min-width:0;padding:2px 4px;font-size:.8rem}.edit-inline-qty{border:1px solid var(--color-accent);color:#fff;text-align:center;background:#0f172a;border-radius:3px;outline:none;width:36px;padding:1px;font-size:.8rem}@media (width<=600px){.modal-content{width:74vw;max-height:70vh;padding:.75rem}.mini-add-form{flex-wrap:wrap;gap:.25rem}.mini-input{flex-grow:1;flex-basis:120px}}.mini-suggestions-dropdown{background:var(--color-glass-solid);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-glass-border);z-index:1100;border-radius:4px;max-height:280px;margin-bottom:4px;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 -10px 20px #0000004d}.suggestion-item{color:var(--color-text-secondary);cursor:pointer;text-align:left;padding:.35rem .5rem;font-size:.8rem;transition:all .15s}.suggestion-item:hover{background:var(--color-accent);color:#fff}.mini-suggestions-dropdown::-webkit-scrollbar{width:4px}.mini-suggestions-dropdown::-webkit-scrollbar-track{background:0 0}.mini-suggestions-dropdown::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.carrier-gender-select-wrapper{z-index:15;position:absolute;bottom:28px;right:12px}.gender-trigger-btn{cursor:pointer;background:#0f172abf;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:1.1rem;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;box-shadow:0 4px 10px #0000004d}.gender-trigger-btn:hover{border-color:var(--color-accent);background:#1e293be6;transform:scale(1.1)}.gender-dropdown-list{-webkit-backdrop-filter:blur(8px);z-index:25;background:#0f172ad9;border:1px solid #fff3;border-radius:20px;flex-direction:row;gap:4px;padding:4px;display:flex;position:absolute;bottom:38px;right:0;box-shadow:0 8px 24px #00000080}.gender-dropdown-item{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:1rem;transition:all .15s;display:flex}.gender-dropdown-item:hover{opacity:1;background:#ffffff26;transform:scale(1.15)}.gender-dropdown-item.active{opacity:1;background:var(--color-accent);box-shadow:0 2px 6px #0000004d}@keyframes scaleUp{0%{opacity:0;transform:scale(.8)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.animate-scale-up{transform-origin:100% 100%;animation:.2s cubic-bezier(.34,1.56,.64,1) forwards scaleUp}.login-modal-card{background:var(--color-glass-solid);border:1px solid var(--color-glass-border);text-align:center;border-radius:16px;flex-direction:column;align-items:center;width:360px;padding:1.5rem;animation:.25s cubic-bezier(.34,1.56,.64,1) forwards scaleUp;display:flex;box-shadow:0 20px 50px #0006}.login-modal-header{color:var(--color-text-primary);margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.login-modal-desc{color:var(--color-text-secondary);margin-bottom:1.5rem;font-size:.8rem;line-height:1.5}.social-login-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;margin-bottom:.75rem;padding:10px;font-size:.9rem;font-weight:700;transition:all .2s;display:flex}.social-login-btn.google{color:#1f2937;background:#fff;border:1px solid #d1d5db}.social-login-btn.google:hover{background:#f9fafb;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.social-login-btn.kakao{color:#191919;background:#fee500}.social-login-btn.kakao:hover{background:#fdd835;transform:translateY(-2px);box-shadow:0 4px 12px #fee50040}.login-modal-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;margin-top:.5rem;font-size:.8rem;text-decoration:underline;transition:color .15s}.login-modal-close:hover{color:var(--color-text-primary)}.cloud-save-btn{transition:all .2s cubic-bezier(.34,1.56,.64,1);color:#ffffffd9!important;background:linear-gradient(135deg,#475569,#334155)!important;border:1px solid #ffffff26!important}.cloud-save-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #47556973;background:linear-gradient(135deg,#64748b,#475569)!important}.cloud-save-btn:active{transform:translateY(0)}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;width:max-content;max-width:90vw;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast-container--top{top:1.2rem}.toast-container--bottom{flex-direction:column-reverse;bottom:1.4rem}.toast-item{pointer-events:auto;-webkit-backdrop-filter:blur(12px);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.82rem;font-weight:500;animation:.28s cubic-bezier(.34,1.56,.64,1) both toast-in;display:flex;box-shadow:0 4px 20px #00000059}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-success{color:#6ee7b7;background:#10b9812e;border:1px solid #10b98173}.toast-error{color:#fca5a5;background:#ef44442e;border:1px solid #ef444473}.toast-info{color:#c7d2fe;background:#6366f12e;border:1px solid #6366f173}.toast-loading{color:var(--color-text-secondary);background:#ffffff1a;border:1px solid #fff3}.toast-icon{flex-shrink:0;font-size:.9rem}.toast-msg{line-height:1.35}.carrier-progress-wrap{-webkit-backdrop-filter:blur(6px);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:#0f172abf;border-top:1px solid #ffffff14;flex-direction:column;flex-shrink:0;gap:.15rem;width:100%;padding:.22rem .5rem .2rem;display:flex}.carrier-progress-bar-track{background:#ffffff1f;border-radius:99px;width:100%;height:4px;overflow:hidden}.carrier-progress-bar-fill{border-radius:99px;min-width:0;height:100%;transition:width .6s cubic-bezier(.4,0,.2,1),background .4s}.carrier-progress-label{color:var(--color-text-muted);letter-spacing:.01em;text-align:center;white-space:nowrap;font-size:.65rem}.carrier-complete{animation:2.2s ease-in-out infinite glow-pulse;box-shadow:0 0 0 2px #10b98140,0 0 18px 4px #10b98159,0 10px 30px #00000080;border-color:#10b981b3!important}@keyframes glow-pulse{0%,to{box-shadow:0 0 0 2px #10b98140,0 0 18px 4px #10b98159,0 10px 30px #00000080}50%{box-shadow:0 0 0 3px #34d39966,0 0 28px 8px #34d39980,0 10px 30px #00000080}}.carrier-complete .carrier-progress-label{color:#34d399;font-weight:600}
