:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:#e0e0e0;background-color:#0a0a1a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}.nav{background:#1a1a2e;padding:0 2rem;display:flex;align-items:center;gap:2rem;height:60px;box-shadow:0 2px 12px #00000040;position:sticky;top:0;z-index:50}.nav-brand{font-size:1.3rem;font-weight:700;color:#e0e0e0;white-space:nowrap;display:flex;align-items:center;gap:.5rem}.nav-brand-icon{width:28px;height:28px}.nav-links{display:flex;gap:.25rem;flex:1}.nav-logout{background:none;border:1px solid rgba(255,255,255,.1);color:#a0a0b8;font-size:.85rem;font-weight:500;cursor:pointer;padding:.4rem .8rem;border-radius:6px;transition:all .2s;white-space:nowrap;margin-left:auto}.nav-logout:hover{color:#e94560;border-color:#e94560;background:#e9456014}.nav-link{color:#a0a0b8;text-decoration:none;padding:.5rem 1rem;border-radius:8px;font-weight:500;transition:all .2s;font-size:.95rem;position:relative}.nav-link:hover{color:#fff;background:#ffffff0f;text-decoration:none}.nav-link.active{color:#fff;background:#e945601f}.nav-link.active:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:24px;height:3px;background:#e94560;border-radius:2px}@media(max-width:640px){.nav{padding:0 .5rem;gap:.25rem;height:56px}.nav-brand{font-size:0px;gap:0;min-width:28px}.nav-links{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:.15rem}.nav-links::-webkit-scrollbar{display:none}.nav-link{padding:.5rem .6rem;font-size:.85rem;white-space:nowrap;min-height:44px;display:flex;align-items:center}.nav-logout{font-size:.85rem;padding:.5rem .75rem;min-height:44px}}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:10px;color:#e0e0e0;font-size:.9rem;animation:toast-in .3s ease-out;pointer-events:auto;box-shadow:0 4px 20px #0006;min-width:200px;max-width:400px}.toast-success{background:#1a2e1a;border:1px solid #2d5a2d}.toast-error{background:#2e1a1a;border:1px solid #5a2d2d}.toast-info{background:#1a1a2e;border:1px solid #2d2d5a}.toast-icon{font-weight:700;font-size:1rem}.toast-success .toast-icon{color:#06d6a0}.toast-error .toast-icon{color:#e94560}.toast-info .toast-icon{color:#118ab2}.toast-message{flex:1}@keyframes toast-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#12122a;border-radius:12px;width:480px;max-width:95vw;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px #0006}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #1a1a3e}.modal-header h3{margin:0;color:#e0e0e0;font-size:1.1rem}.close-btn{background:none;border:none;color:#a0a0b8;font-size:1.4rem;cursor:pointer;line-height:1}.close-btn:hover{color:#e94560}.modal-body{padding:1.25rem;display:flex;flex-direction:column;gap:1.25rem}.gen-section{display:flex;flex-direction:column;gap:.5rem}.gen-section>label{font-weight:600;color:#a0a0b8;font-size:.85rem}.checkbox-group,.radio-group{display:flex;gap:1rem}.checkbox-label,.radio-label{display:flex;align-items:center;gap:.4rem;color:#e0e0e0;font-size:.9rem;cursor:pointer}.checkbox-label input,.radio-label input{accent-color:#e94560}.pinned-list{display:flex;flex-direction:column;gap:.4rem}.pinned-item{display:flex;align-items:center;gap:.5rem;background:#1a1a2e;padding:.4rem .75rem;border-radius:6px}.pin-type{color:#a0a0b8;font-size:.8rem;text-transform:capitalize;min-width:65px}.pin-name{color:#e0e0e0;font-size:.85rem;flex:1}.pin-remove{background:none;border:none;color:#e94560;font-size:1.1rem;cursor:pointer;padding:0}.pin-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.pin-form select{background:#0a0a1a;color:#e0e0e0;border:1px solid #2a2a4a;border-radius:6px;padding:.35rem .5rem;font-size:.85rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid #1a1a3e}@media(max-width:640px){.checkbox-group,.radio-group{flex-wrap:wrap}.checkbox-label,.radio-label{min-height:44px;padding:.25rem 0}.pin-form{flex-direction:column;align-items:stretch}.pin-form select{min-height:44px;font-size:1rem}.modal-footer .btn{min-height:44px;flex:1}.close-btn{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}}.planner{padding:1.5rem;max-width:1200px;margin:0 auto}.week-nav{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:.75rem}.week-nav h2{margin:0;font-size:1.2rem;color:#e0e0e0;text-align:center}.week-info{display:flex;flex-direction:column;align-items:center;gap:.4rem;min-width:250px}.today-btn{background:#e945601a!important;color:#e94560!important;border:1px solid rgba(233,69,96,.3)!important;padding:.25rem .75rem!important;font-size:.75rem!important;border-radius:20px!important;text-transform:uppercase;letter-spacing:.05em}.today-btn:hover{background:#e94560!important;color:#fff!important}.week-nav button{background:#16213e;color:#e0e0e0;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;font-size:.9rem}.week-nav button:hover{background:#0f3460}.planner-actions{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.generate-btn{background:#e94560;color:#fff;border:none;padding:.45rem 1rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem;transition:background .2s}.generate-btn:hover{background:#c73650}.clear-btn{background:transparent;color:#e94560;border:1px solid rgba(233,69,96,.4);padding:.45rem 1rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem;transition:all .2s}.clear-btn:hover{background:#e94560;color:#fff;border-color:#e94560}.planner-grid{display:grid;grid-template-columns:100px repeat(7,1fr);gap:4px}.grid-header{text-align:center;font-weight:600;font-size:.85rem;color:#a0a0b8;padding:.5rem .25rem}.day-header{background:#16213e;border-radius:8px;padding:.6rem .25rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;transition:all .3s ease}.day-header.today{background:#e94560;color:#fff;box-shadow:0 0 15px #e945604d}.meal-type-label{display:flex;align-items:center;justify-content:center;gap:.3rem;font-weight:600;font-size:.85rem;color:#e0e0e0;background:#16213e;border-radius:8px;padding:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.meal-type-label:hover{background:#0f3460}.meal-type-label.collapsed{color:#555;background:#111125}.toggle-icon{font-size:.75rem}.collapsed-row{height:4px}.meal-cell{background:#1a1a2e;border-radius:8px;height:70px;display:flex;align-items:center;justify-content:center;padding:.3rem;position:relative;transition:background .15s}.meal-card{display:flex;align-items:center;gap:.3rem;background:linear-gradient(135deg,#0f3460,#16213e);border-radius:6px;padding:.4rem .6rem;width:100%;cursor:grab;box-shadow:0 2px 4px #0003;transition:box-shadow .2s,transform .15s}.meal-card:hover{box-shadow:0 4px 12px #0000004d;transform:translateY(-1px)}.meal-card:active{cursor:grabbing;opacity:.7}.meal-cell.drag-over{background:#0f3460;outline:2px dashed #e94560;outline-offset:-2px}.meal-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.meal-name{font-size:.8rem;color:#e0e0e0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-note{font-size:.7rem;color:#a0a0b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-link{color:#e0e0e0;text-decoration:none;transition:color .2s}.meal-link:hover{color:#e94560;text-decoration:underline}.remove-btn{background:none;border:none;color:#e94560;font-size:1.1rem;cursor:pointer;padding:0;line-height:1}.add-meal-btn{background:none;border:none;color:#333;font-size:1.3rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.add-meal-btn:hover{color:#e94560}.recipe-picker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;width:90%}.recipe-picker select{width:100%;padding:.3rem;border-radius:6px;border:1px solid #0f3460;background:#0a0a1a;color:#e0e0e0;font-size:.8rem}.hint{text-align:center;color:#a0a0b8;margin-top:2rem}.hint a{color:#e94560}.meal-card.prepared{background:linear-gradient(135deg,#1a3a2a,#162e22);border:1px solid rgba(6,214,160,.3);opacity:.8}.meal-card.prepared .meal-name{text-decoration:line-through;color:#8a8a9a}.prepared-btn{background:none;border:1.5px solid #4a4a6a;color:#4a4a6a;font-size:.7rem;cursor:pointer;padding:0;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;line-height:1}.prepared-btn:hover{border-color:#06d6a0;color:#06d6a0}.prepared-btn.is-prepared{background:#06d6a0;border-color:#06d6a0;color:#0a0a1a;font-weight:700}.planner-mobile{display:none}@media(max-width:768px){.planner{padding:1rem .5rem}.week-nav{gap:.5rem}.week-nav h2{font-size:1rem}.week-info{min-width:auto}.week-nav button{min-height:44px;min-width:44px;padding:.5rem .75rem}.planner-actions{gap:.5rem}.generate-btn,.clear-btn{flex:1;min-height:44px;font-size:.9rem}.desktop-grid{display:none}.planner-mobile{display:flex;flex-direction:column;gap:.75rem}.mobile-day{background:#12122a;border-radius:12px;overflow:hidden}.mobile-day-header{font-weight:700;font-size:1rem;color:#e0e0e0;padding:.75rem 1rem;background:#16213e;text-align:center}.mobile-day-header.today{background:#e94560;color:#fff}.mobile-day-meals{display:flex;flex-direction:column;gap:1px}.mobile-meal-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;min-height:52px;background:#1a1a2e}.mobile-meal-row.drag-over{background:#0f3460;outline:2px dashed #e94560;outline-offset:-2px}.mobile-meal-type{color:#a0a0b8;font-size:.8rem;font-weight:600;min-width:64px;text-transform:uppercase;letter-spacing:.03em}.mobile-meal-row .meal-card{flex:1;min-height:44px;padding:.5rem .75rem}.mobile-meal-row .meal-name{font-size:.9rem}.mobile-meal-row .remove-btn{font-size:1.3rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.mobile-meal-row .prepared-btn{width:28px;height:28px;font-size:.85rem}.mobile-meal-row .add-meal-btn{font-size:1.5rem;min-width:44px;min-height:44px;flex:1;display:flex;align-items:center;justify-content:center}.mobile-meal-row .recipe-picker{position:relative;top:auto;left:auto;transform:none;flex:1}.mobile-meal-row .recipe-picker select{font-size:1rem;padding:.5rem;min-height:44px;width:100%}.today-btn{min-height:36px!important;padding:.4rem 1rem!important;font-size:.8rem!important}}.recipes-page,.recipe-form-page{padding:1.5rem;max-width:800px;margin:0 auto}.recipes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.recipes-header h2{margin:0;color:#e0e0e0}.recipe-list{display:flex;flex-direction:column;gap:.75rem}.recipe-card{background:#1a1a2e;border-radius:10px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;transition:background .2s,transform .15s;border:1px solid transparent}.recipe-card:hover{background:#1e1e36;transform:translateY(-1px);border-color:#ffffff0a}.recipe-info h3{margin:0 0 .3rem;color:#e0e0e0;font-size:1.05rem}.recipe-meta{display:flex;gap:.75rem;align-items:center}.servings{color:#a0a0b8;font-size:.8rem}.ingredient-count{color:#6a6a8a;font-size:.8rem;padding-left:.75rem;border-left:1px solid #2a2a4a}.recipe-actions{display:flex;gap:.5rem}.recipe-form{display:flex;flex-direction:column;gap:1.25rem}.recipe-form-page h2{color:#e0e0e0;margin-bottom:.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#a0a0b8;font-size:.9rem}.form-group input[type=text],.form-group input[type=number]{background:#0a0a1a;border:1px solid #2a2a4a;color:#e0e0e0;padding:.6rem .8rem;border-radius:8px;font-size:.95rem}.form-group input:focus{outline:none;border-color:#e94560}.ingredient-row{display:flex;gap:.5rem;align-items:center}.ing-name{flex:3}.ing-qty{flex:1}.ing-unit{flex:1.5}.btn-icon{background:none;border:none;color:#e94560;font-size:1.3rem;cursor:pointer;padding:0 .3rem}.form-actions{display:flex;gap:.75rem;margin-top:.5rem}.btn{background:#16213e;color:#e0e0e0;border:none;padding:.6rem 1.2rem;border-radius:8px;cursor:pointer;font-weight:600;text-decoration:none;font-size:.9rem;transition:background .2s}.btn:hover{background:#0f3460}.btn-primary{background:#e94560;color:#fff}.btn-primary:hover{background:#c73650}.btn-danger{background:transparent;color:#e94560;border:1px solid #e94560}.btn-danger:hover{background:#e94560;color:#fff}.btn-small{padding:.35rem .75rem;font-size:.8rem}.recipe-view-page{padding:1.5rem;max-width:800px;margin:0 auto}.recipe-view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.recipe-view-header h2{margin:0;color:#e0e0e0}.recipe-view-actions{display:flex;gap:.5rem}.meal-types-picker{display:flex;gap:.75rem;padding:.5rem 0;flex-wrap:wrap}.meal-type-checkbox{display:flex;align-items:center;gap:.6rem;background:#16213e;padding:.6rem 1.2rem;border-radius:50px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid #2a2a4a;color:#a0a0b8;font-size:.85rem;font-weight:600;-webkit-user-select:none;user-select:none}.meal-type-checkbox:hover{background:#1e2e50;border-color:#3a3a6a}.meal-type-checkbox input{margin:0;accent-color:#e94560;width:16px;height:16px}.meal-type-checkbox:has(input:checked){border-color:#e94560;color:#fff;background:#e9456026;box-shadow:0 0 15px #e945601a}.recipe-view-meal-types{display:flex;gap:.5rem;margin-top:.5rem}.meal-type-badge{background:#e945601a;color:#e94560;padding:.25rem .8rem;border-radius:50px;font-size:.7rem;text-transform:uppercase;font-weight:800;letter-spacing:.08em;border:1px solid rgba(233,69,96,.3)}.recipe-view-meta{margin-bottom:1.5rem;color:#a0a0b8;font-size:.9rem;display:flex;flex-direction:column;gap:.4rem}.recipe-view-section{margin-bottom:1.5rem}.recipe-view-section h3{color:#a0a0b8;font-size:.95rem;margin:0 0 .75rem;border-bottom:1px solid #2a2a4a;padding-bottom:.4rem}.recipe-view-ingredients{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.recipe-view-ingredients li{color:#e0e0e0;font-size:.9rem;padding:.4rem .6rem;background:#1a1a2e;border-radius:6px;display:flex;gap:.4rem}.recipe-view-ingredients .ing-detail{color:#e94560;font-weight:600}.recipe-view-instructions{color:#e0e0e0;font-size:.9rem;line-height:1.7;white-space:pre-wrap;background:#1a1a2e;border-radius:8px;padding:1rem}.form-group textarea{background:#0a0a1a;border:1px solid #2a2a4a;color:#e0e0e0;padding:.6rem .8rem;border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical;line-height:1.6}.form-group textarea:focus{outline:none;border-color:#e94560}@media(max-width:640px){.recipes-page,.recipe-form-page,.recipe-view-page{padding:1rem .75rem}.recipes-header{flex-wrap:wrap;gap:.5rem}.recipes-header .btn{flex:1;min-height:44px;text-align:center}.ingredient-row{flex-wrap:wrap}.ing-name{flex:1 1 100%}.ing-qty,.ing-unit{flex:1 1 40%}.recipe-card{flex-wrap:wrap;gap:.5rem;padding:.85rem 1rem}.recipe-info h3{font-size:1rem}.recipe-actions{width:100%;gap:.5rem}.recipe-actions .btn{flex:1;min-height:44px;text-align:center}.form-actions{flex-direction:column}.form-actions .btn{min-height:44px;text-align:center}.form-group input[type=text],.form-group input[type=number],.form-group textarea{font-size:1rem;padding:.75rem;min-height:44px}.meal-type-checkbox{min-height:44px;padding:.6rem 1rem}.recipe-view-header{flex-wrap:wrap;gap:.5rem}.recipe-view-actions{width:100%}.recipe-view-actions .btn{flex:1;min-height:44px;text-align:center}.btn-icon{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}}.grocery-page{padding:1.5rem;max-width:600px;margin:0 auto}.grocery-page .week-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.grocery-page .week-nav h2{margin:0;font-size:1.1rem;color:#e0e0e0;text-align:center}.grocery-page .week-nav button{background:#16213e;color:#e0e0e0;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:background .2s}.grocery-page .week-nav button:hover{background:#0f3460}.manual-item-form{margin-bottom:1.5rem;background:#16213e;padding:1rem;border-radius:12px}.manual-input-row{display:flex;gap:.5rem;margin-bottom:.75rem}.manual-item-form input[type=text]{flex:1;background:#1a1a2e;border:1px solid #2a2a4a;color:#fff;padding:.6rem 1rem;border-radius:8px;font-size:.95rem}.manual-item-form input[type=text]:focus{outline:none;border-color:#e94560}.add-to-inv-toggle{display:flex;align-items:center;gap:.5rem;color:#a0a0b8;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.add-to-inv-toggle input{accent-color:#e94560}.delete-manual{background:none;border:none;color:#ff4d4d;font-size:1.2rem;cursor:pointer;padding:0 .5rem;line-height:1;opacity:0;transition:opacity .2s}.grocery-item:hover .delete-manual{opacity:.6}.delete-manual:hover{opacity:1!important}.grocery-actions{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.grocery-actions button{background:#16213e;color:#e0e0e0;border:none;padding:.45rem .9rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:background .2s}.grocery-actions button:hover{background:#0f3460}.grocery-action-msg{color:#a0a0b8;font-size:.85rem}.grocery-progress{margin-bottom:1.25rem}.progress-bar{height:6px;background:#1a1a2e;border-radius:3px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#e94560,#ff6b8a);border-radius:3px;transition:width .3s ease}.summary{text-align:center;color:#a0a0b8;font-size:.85rem}.grocery-category-group{margin-bottom:1rem}.grocery-category-heading{margin:.9rem 0 .5rem;color:#a0a0b8;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.grocery-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.4rem}.grocery-item{display:flex;align-items:center;gap:.75rem;background:#1a1a2e;padding:.75rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;border:1px solid transparent}.grocery-item:hover{background:#1e1e36;border-color:#ffffff0a}.grocery-item.checked{opacity:.45}.grocery-item.checked .item-name{text-decoration:line-through}.checkbox{font-size:1.2rem;color:#e94560}.item-name{flex:1;color:#e0e0e0;font-size:.95rem;text-transform:capitalize}.item-qty{color:#a0a0b8;font-size:.85rem;white-space:nowrap;background:#ffffff0a;padding:.15rem .5rem;border-radius:4px}.empty{text-align:center;color:#a0a0b8;margin-top:3rem;font-size:.95rem}.empty a{color:#e94560}.shark-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:1000;display:flex;align-items:center;overflow:hidden}.shark-container{position:absolute;right:-200px;animation:swim 5s linear forwards}.chomping-shark{width:150px;height:150px;animation:chomp .4s ease-in-out infinite}@keyframes swim{0%{right:-200px;transform:translateY(0)}25%{transform:translateY(-50px)}50%{transform:translateY(50px)}75%{transform:translateY(-20px)}to{right:calc(100vw + 200px);transform:translateY(0)}}@keyframes chomp{0%,to{transform:scaleY(1)}50%{transform:scaleY(.7) scaleX(1.1)}}.all-done{text-align:center;color:#ffd166;font-size:1.15rem;font-weight:600;margin-top:1.5rem;animation:bounce-in .5s ease}@keyframes bounce-in{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@media(max-width:640px){.grocery-page{padding:1rem .75rem}.grocery-page .week-nav button{min-height:44px;min-width:44px}.grocery-item{padding:.85rem 1rem;min-height:48px}.item-name{font-size:1rem}.checkbox{font-size:1.4rem;min-width:44px;text-align:center}.delete-manual{opacity:.6;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:1.4rem}.manual-item-form input[type=text]{font-size:1rem;min-height:44px}.manual-input-row .btn{min-height:44px}.grocery-actions button{min-height:44px;padding:.5rem 1rem}}.inventory-page{padding:1.5rem;max-width:700px;margin:0 auto}.inventory-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.inventory-header h2{margin:0;color:#e0e0e0}.inventory-subtitle{color:#6a6a8a;font-size:.85rem;margin-bottom:1.25rem}.inventory-form{display:flex;gap:.5rem;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;background:#12122a;padding:.75rem;border-radius:10px;border:1px solid #1a1a3e}.inv-input{background:#0a0a1a;border:1px solid #2a2a4a;color:#e0e0e0;padding:.5rem .7rem;border-radius:8px;font-size:.9rem}.inv-input:focus{outline:none;border-color:#e94560}.inv-name{flex:3;min-width:120px}.inv-qty{flex:1;min-width:60px}.inv-unit{flex:1.5;min-width:70px}.inventory-list{display:flex;flex-direction:column;gap:.4rem}.inventory-item{display:flex;align-items:center;gap:.75rem;background:#1a1a2e;padding:.7rem 1rem;border-radius:8px;transition:background .2s,transform .15s;border:1px solid transparent}.inventory-item:hover{background:#1e1e36;border-color:#ffffff0a}.inventory-item.editing{border-color:#e94560}.inv-item-name{flex:1;color:#e0e0e0;font-size:.95rem;text-transform:capitalize}.inv-item-qty{color:#a0a0b8;font-size:.85rem;background:#ffffff0a;padding:.15rem .5rem;border-radius:4px;white-space:nowrap}.inv-qty-controls{display:flex;align-items:center;gap:.25rem}.btn-qty{background:#ffffff0f;border:1px solid #2a2a4a;color:#e0e0e0;width:28px;height:28px;border-radius:6px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0;line-height:1}.btn-qty:hover{background:#e9456026;border-color:#e94560}.inv-qty-display{color:#e0e0e0;font-size:.95rem;font-weight:600;min-width:24px;text-align:center}.inv-item-actions{display:flex;gap:.25rem;align-items:center}.inv-staple-toggle{display:inline-flex;align-items:center;gap:.35rem;color:#a0a0b8;font-size:.8rem;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.2rem .35rem;border-radius:4px}.inv-staple-toggle:hover{color:#e0e0e0;background:#ffffff0f}.inv-staple-toggle input{accent-color:#e94560}.btn-icon{background:none;border:none;color:#a0a0b8;font-size:1.1rem;cursor:pointer;padding:.2rem .35rem;border-radius:4px;transition:all .15s}.btn-icon:hover{color:#e0e0e0;background:#ffffff0f}.btn-icon-danger:hover{color:#e94560;background:#e945601a}.empty{text-align:center;color:#a0a0b8;margin-top:3rem}@media(max-width:640px){.inventory-page{padding:1rem .75rem}.inventory-form{flex-direction:column}.inv-name,.inv-qty,.inv-unit{min-width:0;flex:1 1 100%}.inv-input{font-size:1rem;padding:.65rem .75rem;min-height:44px}.inventory-form .btn{min-height:44px;width:100%}.inventory-item{flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;min-height:48px}.inv-item-name{font-size:1rem}.btn-qty{width:36px;height:36px;font-size:1.1rem}.btn-icon{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}}.chat-page{display:flex;flex-direction:column;height:calc(100vh - 60px);max-width:800px;margin:0 auto;padding:0}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #1a1a2e}.chat-header h2{margin:0;font-size:1.1rem;color:#e0e0e0}.chat-header-actions{display:flex;align-items:center;gap:.75rem}.chat-quota{display:flex;align-items:center;gap:.6rem;font-size:.75rem}.quota-item{color:#6a6a8a;background:#1a1a2e;padding:.25rem .6rem;border-radius:6px;white-space:nowrap}.quota-warning{color:#e94560;font-weight:600}.chat-clear-btn{background:transparent;border:1px solid #2a2a4a;color:#a0a0b8;padding:.3rem .8rem;border-radius:6px;cursor:pointer;font-size:.8rem;transition:all .2s}.chat-clear-btn:hover{color:#e94560;border-color:#e94560}.chat-messages{flex:1;overflow-y:auto;padding:1rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center;gap:.5rem}.chat-empty-icon{width:64px;height:64px;margin-bottom:.5rem}.chat-empty-title{font-size:1.1rem;color:#e0e0e0;font-weight:600}.chat-empty-hint{color:#6a6a8a;font-size:.9rem;max-width:400px}.chat-suggestions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;justify-content:center}.chat-suggestions button{background:#1a1a2e;border:1px solid #2a2a4a;color:#a0a0b8;padding:.5rem 1rem;border-radius:20px;cursor:pointer;font-size:.85rem;transition:all .2s}.chat-suggestions button:hover{border-color:#e94560;color:#e0e0e0}.chat-msg{display:flex;gap:.75rem;max-width:90%}.chat-msg-user{align-self:flex-end;flex-direction:row-reverse}.chat-msg-assistant{align-self:flex-start}.chat-msg-avatar{font-size:.8rem;font-weight:700;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#1a1a2e;border-radius:50%;color:#e94560}.chat-msg-body{display:flex;flex-direction:column;gap:.4rem}.chat-msg-user .chat-msg-text{background:#0f3460;color:#e0e0e0;padding:.6rem 1rem;border-radius:16px 16px 4px;font-size:.9rem;line-height:1.5;white-space:pre-wrap}.chat-msg-assistant .chat-msg-text{background:#1a1a2e;color:#e0e0e0;padding:.6rem 1rem;border-radius:16px 16px 16px 4px;font-size:.9rem;line-height:1.5;white-space:pre-wrap}.chat-tool-actions{display:flex;flex-wrap:wrap;gap:.3rem}.chat-tool-badge{display:inline-flex;align-items:center;gap:.25rem;background:#e945601a;border:1px solid rgba(233,69,96,.2);color:#e94560;padding:.2rem .6rem;border-radius:12px;font-size:.75rem;white-space:nowrap}.chat-typing{display:flex;gap:.3rem;padding:.8rem 1rem;background:#1a1a2e;border-radius:16px 16px 16px 4px;width:fit-content}.chat-typing span{width:8px;height:8px;background:#4a4a6a;border-radius:50%;animation:typing-bounce 1.4s infinite}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.chat-error{background:#e945601a;border:1px solid rgba(233,69,96,.3);color:#e94560;padding:.6rem 1rem;border-radius:8px;font-size:.85rem;text-align:center}.chat-input-area{display:flex;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid #1a1a2e;background:#0a0a1a}.chat-input-area textarea{flex:1;background:#1a1a2e;border:1px solid #2a2a4a;color:#e0e0e0;padding:.6rem 1rem;border-radius:12px;font-size:.9rem;font-family:inherit;resize:none;min-height:42px;max-height:120px;line-height:1.4}.chat-input-area textarea:focus{outline:none;border-color:#e94560}.chat-input-area textarea::placeholder{color:#4a4a6a}.chat-send-btn{background:#e94560;color:#fff;border:none;padding:.6rem 1.25rem;border-radius:12px;cursor:pointer;font-weight:600;font-size:.9rem;transition:background .2s;align-self:flex-end}.chat-send-btn:hover:not(:disabled){background:#c73650}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}@media(max-width:640px){.chat-header{padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem}.chat-messages,.chat-input-area{padding:.75rem 1rem}.chat-input-area textarea{font-size:1rem;min-height:44px}.chat-send-btn{min-height:44px;min-width:60px;padding:.6rem 1rem}.chat-msg{max-width:95%}.chat-msg-user .chat-msg-text,.chat-msg-assistant .chat-msg-text{font-size:.95rem;padding:.75rem 1rem}.chat-quota{flex-wrap:wrap}.chat-clear-btn{min-height:44px;padding:.5rem 1rem}.chat-suggestions button{min-height:44px;padding:.6rem 1rem;font-size:.9rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0a0a1a;color:#e0e0e0;min-height:100vh}main{min-height:calc(100vh - 60px)}a{color:#e94560;text-decoration:none}a:hover{text-decoration:underline}
