:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg-primary: #fafafa;--bg-card: #ffffff;--text-primary: #1a1a1a;--text-secondary: #6b7280;--text-muted: #9ca3af;--accent: #3b82f6;--accent-hover: #2563eb;--accent-light: #eff6ff;--success: #10b981;--success-light: #ecfdf5;--error: #ef4444;--error-light: #fef2f2;--border: #e5e7eb;--border-light: #f3f4f6;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 24px;--transition: .2s ease}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}.app{width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center}.auth-container{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;width:100%;max-width:480px;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.auth-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:40px 32px;box-shadow:var(--shadow-lg);max-width:400px;width:100%;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-logo{text-align:center;margin-bottom:32px}.logo-icon{font-size:3.5rem;display:block;margin-bottom:12px}.auth-logo h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:4px}.auth-logo p{color:var(--text-secondary);font-size:1rem}.auth-buttons{display:flex;flex-direction:column;gap:12px}.auth-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 20px;border:none;border-radius:var(--radius);font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.google-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)}.google-btn:hover:not(:disabled){background:var(--border-light);border-color:var(--text-muted)}.google-icon{width:20px;height:20px}.email-btn,.magic-btn{background:var(--border-light);color:var(--text-primary)}.email-btn:hover:not(:disabled),.magic-btn:hover:not(:disabled){background:var(--border)}.primary-btn{background:var(--accent);color:#fff}.primary-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.auth-divider{display:flex;align-items:center;gap:16px;margin:8px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-divider span{color:var(--text-muted);font-size:.875rem}.auth-footer{text-align:center;margin-top:24px;color:var(--text-secondary);font-size:.9rem}.link-btn{background:none;border:none;color:var(--accent);font-weight:500;cursor:pointer;padding:0}.link-btn:hover{text-decoration:underline}.back-link{background:none;border:none;color:var(--text-secondary);font-size:.9rem;cursor:pointer;padding:0;margin-bottom:20px;display:block}.back-link:hover{color:var(--text-primary)}.auth-header{text-align:center;margin-bottom:24px}.auth-header h2{font-size:1.5rem;font-weight:600;margin-bottom:4px}.auth-header p{color:var(--text-secondary)}.auth-form{display:flex;flex-direction:column;gap:16px}.input-group input{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;transition:all var(--transition);background:var(--bg-card)}.input-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.auth-error{background:var(--error-light);color:var(--error);padding:12px 16px;border-radius:var(--radius-sm);font-size:.9rem;text-align:center}.magic-link-sent{text-align:center;padding:20px 0}.sent-icon{font-size:3rem;margin-bottom:16px}.magic-link-sent h3{font-size:1.25rem;margin-bottom:8px}.magic-link-sent p{color:var(--text-secondary);margin-bottom:4px}.magic-link-sent .hint{font-size:.875rem;color:var(--text-muted)}.auth-loading{flex:1;display:flex;align-items:center;justify-content:center}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.home-container{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;width:100%;max-width:480px}.home-header{text-align:center;margin-bottom:48px;width:100%;max-width:400px}.home-header h1{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.02em}.home-header p{font-size:1.1rem;color:var(--text-secondary)}.sign-out-btn{align-self:flex-end;background:none;border:none;color:var(--text-secondary);font-size:.875rem;padding:8px 12px;cursor:pointer;transition:all var(--transition);border-radius:var(--radius-sm)}.sign-out-btn:hover{color:var(--accent);background:var(--accent-light)}.home-actions{display:flex;flex-direction:column;gap:16px;width:100%;max-width:400px}.action-button{display:flex;flex-direction:column;align-items:center;padding:32px 24px;border:none;border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow);cursor:pointer;transition:all var(--transition);text-align:center;width:100%}.action-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.action-button:active{transform:translateY(0)}.action-button.primary{background:linear-gradient(135deg,var(--accent) 0%,#6366f1 100%);color:#fff}.action-button.secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.action-button.secondary:hover{border-color:var(--accent)}.button-icon{width:48px;height:48px;margin-bottom:12px;display:flex;align-items:center;justify-content:center}.button-icon svg{width:100%;height:100%}.action-button.secondary .button-icon{color:var(--accent)}.button-text{font-size:1.125rem;font-weight:600;margin-bottom:4px}.button-subtitle{font-size:.875rem;opacity:.8}.home-footer{margin-top:auto;padding-top:48px;text-align:center;color:var(--text-muted);font-size:.8rem;width:100%}.scanner-container{flex:1;display:flex;flex-direction:column;background:#0a0a0a;color:#fff;min-height:100vh;min-height:100dvh;width:100%;max-width:480px}.scanner-header{display:flex;align-items:center;padding:16px 20px;background:#0a0a0af2;position:sticky;top:0;z-index:10;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding-top:max(16px,env(safe-area-inset-top))}.scanner-header h2{flex:1;text-align:center;margin:0;font-size:1.125rem;font-weight:600}.back-btn{background:none;border:none;color:var(--accent);font-size:1rem;padding:8px 0;cursor:pointer;font-weight:500;transition:opacity var(--transition)}.back-btn:hover{opacity:.8}.scanner-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;position:relative}.scanner-instructions{text-align:center;margin-bottom:24px}.scanner-instructions p{color:#ffffffe6;font-size:1rem;font-weight:500}.qr-reader{width:100%;max-width:320px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 0 0 4px #3b82f64d}.permission-request{text-align:center;background:#ffffff14;border-radius:var(--radius-lg);padding:40px 32px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);max-width:320px}.permission-icon{font-size:3.5rem;margin-bottom:16px}.permission-request h3{margin-bottom:8px;font-size:1.25rem;font-weight:600}.permission-request p{color:#ffffffb3;margin-bottom:24px;line-height:1.5}.permission-btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:14px 24px;font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition);width:100%}.permission-btn:hover{background:var(--accent-hover)}.scanner-loading{text-align:center;padding:40px}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}.scanner-loading p{color:#fff9}.scanner-error{text-align:center;background:#ef44441a;border-radius:var(--radius-lg);padding:32px 24px;max-width:320px;border:1px solid rgba(239,68,68,.2)}.error-icon{font-size:2.5rem;margin-bottom:16px}.scanner-error p{color:#ffffffe6;margin-bottom:20px;line-height:1.5}.retry-btn{background:var(--error);color:#fff;border:none;border-radius:var(--radius-sm);padding:12px 20px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.retry-btn:hover{background:#dc2626}.scanner-tips{position:absolute;bottom:24px;left:20px;right:20px;background:#000c;border-radius:var(--radius);padding:16px 20px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding-bottom:max(16px,env(safe-area-inset-bottom))}.tip{color:#ffffffb3;font-size:.8rem;margin-bottom:6px;display:flex;align-items:center;gap:8px}.tip:last-child{margin-bottom:0}.scanner-controls{display:flex;gap:12px;margin-top:20px}.torch-btn{background:#ffffff26;border:none;border-radius:var(--radius);padding:12px 20px;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all var(--transition)}.torch-btn:hover{background:#ffffff40}.torch-btn.active{background:var(--accent)}.manual-input-section{width:100%;max-width:320px;margin-top:24px}.manual-input-toggle{background:none;border:none;color:var(--accent);font-size:.9rem;cursor:pointer;padding:8px;width:100%;text-align:center}.manual-input-form{display:flex;gap:8px;margin-top:12px}.manual-input{flex:1;padding:12px 16px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);background:#ffffff1a;color:#fff;font-size:1rem}.manual-input::placeholder{color:#fff6}.manual-input:focus{outline:none;border-color:var(--accent)}.manual-submit{padding:12px 20px;background:var(--accent);border:none;border-radius:var(--radius);color:#fff;font-weight:500;cursor:pointer}.box-contents-container{flex:1;display:flex;flex-direction:column;padding:24px;max-width:480px;width:100%}.box-header{display:flex;align-items:center;margin-bottom:24px}.box-info{flex:1;text-align:center}.box-info h2{margin:0 0 4px;font-size:1.5rem;font-weight:600}.item-count{color:var(--text-secondary);font-size:.9rem}.add-item-section{background:var(--bg-card);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.add-item-form{display:flex;gap:12px}.item-input{flex:1;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;transition:all var(--transition)}.item-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.add-btn{padding:14px 20px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-weight:600;cursor:pointer;white-space:nowrap;transition:all var(--transition)}.add-btn:hover:not(:disabled){background:var(--accent-hover)}.add-btn:disabled{opacity:.6;cursor:not-allowed}.items-section{flex:1;background:var(--bg-card);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.loading,.empty-box{text-align:center;color:var(--text-secondary);padding:40px}.items-list{display:flex;flex-direction:column;gap:8px}.item-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--border-light);border-radius:var(--radius);transition:background-color var(--transition)}.item-row:hover{background:var(--border)}.item-text{flex:1;font-size:1rem}.remove-btn{background:var(--error);color:#fff;border:none;border-radius:var(--radius-sm);padding:8px 12px;font-size:.875rem;cursor:pointer;transition:all var(--transition);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.remove-btn:hover:not(:disabled){background:#dc2626}.remove-btn:disabled{opacity:.6;cursor:not-allowed}.description-section{background:var(--bg-card);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.description-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.description-header label{font-weight:600;color:var(--text-primary)}.edit-description-btn{background:none;border:none;color:var(--accent);font-size:.875rem;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition)}.edit-description-btn:hover{background:var(--accent-light)}.description-display{font-size:.95rem;line-height:1.5;color:var(--text-primary);min-height:24px}.description-placeholder{color:var(--text-muted);font-style:italic}.description-textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:.95rem;resize:vertical;transition:all var(--transition)}.description-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.description-buttons{display:flex;gap:8px;margin-top:12px}.save-btn,.cancel-btn{flex:1;padding:10px 16px;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.save-btn{background:var(--accent);color:#fff}.save-btn:hover{background:var(--accent-hover)}.cancel-btn{background:var(--border-light);color:var(--text-secondary)}.cancel-btn:hover{background:var(--border)}.description-error{margin-top:12px;padding:12px;background:var(--error-light);border-radius:var(--radius-sm);color:var(--error)}.description-error p{margin:0 0 8px;font-size:.9rem}.error-dismiss{background:var(--error);color:#fff;border:none;padding:6px 12px;border-radius:4px;font-size:.8rem;cursor:pointer}.box-footer{text-align:center;color:var(--text-muted);font-size:.8rem}.generator-container{flex:1;display:flex;flex-direction:column;padding:24px;max-width:480px;width:100%}.generator-header{display:flex;align-items:center;margin-bottom:24px}.generator-header h2{flex:1;text-align:center;font-size:1.25rem;font-weight:600}.generator-content{flex:1}.input-section{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);margin-bottom:24px}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-primary)}.form-group input{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;transition:all var(--transition)}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.input-with-button{display:flex;gap:8px}.input-with-button input{flex:1}.random-btn{padding:14px 16px;background:var(--border-light);border:1px solid var(--border);border-radius:var(--radius);font-size:1.1rem;cursor:pointer;transition:all var(--transition)}.random-btn:hover{background:var(--border)}.generate-btn{width:100%;padding:14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition);margin-top:8px}.generate-btn:hover:not(:disabled){background:var(--accent-hover)}.generate-btn:disabled{opacity:.6;cursor:not-allowed}.qr-result{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);text-align:center}.qr-display{margin-bottom:20px}.qr-canvas{max-width:100%;height:auto;border-radius:var(--radius)}.box-label{margin-top:12px;font-weight:600;color:var(--text-primary)}.qr-actions{display:flex;gap:12px;margin-bottom:20px}.action-btn{flex:1;padding:12px;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.print-btn{background:var(--accent);color:#fff}.print-btn:hover{background:var(--accent-hover)}.download-btn{background:var(--success);color:#fff}.download-btn:hover{background:#059669}.print-tips{border-top:1px solid var(--border);padding-top:20px;text-align:left}.print-tips h4{margin-bottom:12px;font-size:.9rem;font-weight:600}.print-tips ul{color:var(--text-secondary);font-size:.85rem;line-height:1.6;padding-left:20px}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px;padding-top:env(safe-area-inset-top)}.toast{background:var(--text-primary);color:#fff;padding:12px 20px;border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:slideDown .3s ease;font-size:.9rem;font-weight:500}.toast.success{background:var(--success)}.toast.error{background:var(--error)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 480px){.home-container,.generator-container,.box-contents-container{padding:16px}.auth-card{padding:32px 24px}.action-button{padding:24px 20px}.button-icon{width:40px;height:40px}.qr-actions{flex-direction:column}}@supports (padding: max(0px)){.app{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.home-container,.box-contents-container,.generator-container{padding-bottom:max(24px,env(safe-area-inset-bottom))}}@media print{body{background:#fff}.generator-container,.scanner-container,.box-contents-container,.auth-container{display:none}}
