:root{--primary: #00184a;--primary-dark: #00122f;--primary-light: #1a4d7a;--secondary: #64b5f6;--secondary-dark: #42a5f5;--secondary-light: #90caf9;--success: #28a745;--success-light: #d4edda;--danger: #dc3545;--danger-light: #f8d7da;--warning: #ffc107;--warning-light: #fff3cd;--info: #17a2b8;--info-light: #d1ecf1;--white: #ffffff;--light: #f5f5f5;--gray: #6c757d;--gray-light: #f9f9f9;--border: #ddd;--dark: #333;--darker: #1a1a1a;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-base: 1rem;--font-size-sm: .875rem;--font-size-lg: 1.125rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 600;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--transition-fast: .15s ease;--transition-base: .3s ease;--transition-slow: .5s ease;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 16px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;line-height:1.6}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:.5em}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.1rem}h6{font-size:1rem}p{margin-bottom:1em}a{color:#007bff;text-decoration:none;transition:color .3s ease}a:hover{color:#0056b3;text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none}input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{margin-left:1.5em;margin-bottom:1em}li{margin-bottom:.5em}code{background-color:#f4f4f4;padding:.2em .4em;border-radius:3px;font-family:Courier New,Courier,monospace}pre{background-color:#f4f4f4;padding:1em;border-radius:4px;overflow-x:auto;margin-bottom:1em}pre code{background-color:transparent;padding:0}table{width:100%;border-collapse:collapse;margin-bottom:1em}th,td{padding:.75em;text-align:left;border-bottom:1px solid #ddd}th{background-color:#f9f9f9;font-weight:600}img{max-width:100%;height:auto;display:block}.app{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,#f0f7f4,#e8f4fc,#fffdf7)}.app-main{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:2rem 1rem}.header{background-color:var(--primary);border-bottom:1px solid var(--primary-dark);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.header-content{max-width:1200px;margin:0 auto;padding:1rem;display:flex;justify-content:flex-start;align-items:center;gap:2rem}.header-title{font-size:1.5rem;margin:0;color:var(--dark)}.logo-link{display:flex;align-items:center;text-decoration:none}.logo-image{height:50px;width:auto;max-height:60px}.header-nav{display:none;margin-left:auto}.header-nav ul{display:flex;list-style:none;margin:0;padding:0;gap:2rem}.header-nav a{color:var(--white);text-decoration:none;transition:color var(--transition-base);font-weight:500}.header-nav a:hover{color:var(--secondary-light)}.hamburger-menu{display:none;flex-direction:column;background:none;border:none;cursor:pointer;gap:.4rem;margin-right:1rem}.hamburger-menu span{width:25px;height:3px;background-color:var(--white);border-radius:2px;transition:all .3s ease}.header-nav-main{margin-left:2rem}.header-nav-main ul{display:flex;list-style:none;margin:0;padding:0;gap:2rem}.nav-link{color:var(--white);text-decoration:none;transition:color var(--transition-base);font-weight:500;padding:.5rem 1rem;border-radius:var(--border-radius-md);background-color:#ffffff1a}.nav-link:hover{color:var(--secondary-light);background-color:#fff3}.nav-link-mobile{color:var(--white);text-decoration:none;transition:color var(--transition-base);font-weight:500;padding:.5rem 0;display:block}.nav-link-mobile:hover{color:var(--secondary-light)}.header-auth{margin-left:auto}.header-auth ul{display:flex;list-style:none;margin:0;padding:0;gap:1.5rem}.header-auth a{color:var(--white);text-decoration:none;transition:color var(--transition-base);font-weight:500;padding:.5rem 1rem;border-radius:var(--border-radius-md)}.header-auth a:hover{color:var(--secondary-light)}.header-auth li:last-child a{background-color:var(--secondary-dark);color:var(--white);border-radius:var(--border-radius-sm)}.header-auth li:last-child a:hover{background-color:var(--secondary-light)}.header-user{display:flex;align-items:center;gap:1rem;margin-left:auto}.user-name{color:var(--white);font-weight:500;font-size:.95rem}.btn-logout{background-color:var(--danger);color:var(--white);border:none;padding:.5rem 1rem;border-radius:var(--border-radius-md);cursor:pointer;font-weight:500;transition:var(--transition-default)}.btn-logout:hover{background-color:#b01e1e;transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-logout:active{transform:translateY(0)}.desktop-logout{display:inline-block}.mobile-logout{display:none}.footer{background-color:var(--primary);color:var(--white);border-top:1px solid var(--primary-dark);flex-shrink:0}.footer-content{max-width:1200px;margin:0 auto;padding:2rem 1rem;display:flex;justify-content:space-between;align-items:center}.footer-content p{margin:0}.footer-nav ul{display:flex;list-style:none;margin:0;padding:0;gap:2rem}.footer-nav a{color:var(--border);text-decoration:none;transition:color var(--transition-base)}.footer-nav a:hover{color:var(--gray)}.dashboard{width:100%}.dashboard h2{color:var(--dark);margin-bottom:1rem;border-bottom:2px solid var(--primary);padding-bottom:.5rem}.dashboard-content{margin-top:1.5rem}.dashboard-content pre{background-color:var(--gray-light);padding:1rem;border-radius:var(--radius-sm);overflow-x:auto;font-size:var(--font-size-sm)}@media(max-width:768px){.header-content{flex-direction:row;gap:1rem;flex-wrap:wrap}.header-nav-main{display:none}.hamburger-menu{display:flex;margin-left:auto;order:2}.header-nav{width:100%;order:3;display:none}.header-nav.active{display:flex;flex-direction:column}.header-nav ul{flex-direction:column;gap:1rem;width:100%}.header-nav a,.nav-link-mobile{padding:.5rem 0;display:block}.header-user{margin-left:0;flex:1;gap:.5rem}.user-name,.desktop-logout{display:none}.mobile-logout{display:block;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.2);margin-top:.5rem}.mobile-logout .btn-logout{width:100%;padding:.75rem 0}.footer-content{flex-direction:column;gap:1rem}.footer-nav ul{flex-wrap:wrap;gap:1rem}.app-main{padding:1rem .5rem}.dashboard{padding:1rem}}.btn{padding:.5rem 1rem;border-radius:.5rem;font-size:1rem;font-weight:var(--font-weight-medium);transition:all var(--transition-base);cursor:pointer;border:1px solid transparent}.btn-sm{padding:.35rem .75rem;font-size:.875rem}.btn-primary{background-color:var(--primary);color:var(--white)}.btn-primary:hover{background-color:var(--primary-dark);box-shadow:var(--shadow)}.btn-secondary{background-color:var(--gray);color:var(--white)}.btn-secondary:hover{background-color:var(--dark)}.btn-success{background-color:var(--success);color:var(--white)}.btn-success:hover{background-color:#1e7e34}.btn-danger{background-color:var(--danger);color:var(--white)}.btn-danger:hover{background-color:#bb2d3b}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-weight:var(--font-weight-bold);color:var(--dark)}.form-control{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;transition:border-color var(--transition-base),box-shadow var(--transition-base);margin-top:.5rem;margin-bottom:.5rem}.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 .2rem #00184a40}.form-control:read-only{background-color:#f5f5f5;cursor:not-allowed;color:#666}.form-actions{margin-top:1.5rem}.form-actions button{width:auto;display:inline-block}.form-control.is-invalid:focus{box-shadow:0 0 0 .2rem #dc354540}.form-text{display:block;margin-top:.25rem;font-size:var(--font-size-sm);color:var(--gray)}.form-text.is-invalid{color:var(--danger)}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);border-left:4px solid;margin-bottom:1rem}.alert-info{background-color:var(--info-light);color:#0c5460;border-color:#bee5eb}.alert-success{background-color:var(--success-light);color:#155724;border-color:#c3e6cb}.alert-warning{background-color:var(--warning-light);color:#856404;border-color:#ffeaa7}.alert-danger{background-color:var(--danger-light);color:#721c24;border-color:#f5c6cb}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow)}.card-header{padding:1rem;border-bottom:1px solid var(--border);background-color:var(--gray-light)}.card-body{padding:1rem}.card-footer{padding:1rem;border-top:1px solid var(--border);background-color:var(--gray-light)}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000}.modal.show{display:flex;align-items:center;justify-content:center}.modal-content{background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);max-width:500px;width:90%}.modal-header{padding:1rem;border-bottom:1px solid var(--border)}.modal-body{padding:1rem}.modal-footer{padding:1rem;border-top:1px solid var(--border);display:flex;gap:.5rem;justify-content:flex-end}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;min-height:100vh;width:100%}.spinner{width:40px;height:40px;border:4px solid var(--light);border-top:4px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}.error-message{background-color:var(--danger-light);color:#721c24;padding:1rem;border-radius:var(--radius-sm);border:1px solid #f5c6cb;margin:1rem 0}.error-boundary{background-color:var(--danger-light);color:#721c24;padding:2rem;border-radius:var(--radius-lg);text-align:center;margin:2rem auto;max-width:600px}.error-boundary h2{margin-bottom:1rem}.error-boundary details{text-align:left;background-color:#0000000d;padding:1rem;border-radius:var(--radius-sm);margin-top:1rem;font-size:var(--font-size-sm)}.badge{display:inline-block;padding:.25rem .75rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);border-radius:1rem}.badge-primary{background-color:var(--primary);color:var(--white)}.badge-success{background-color:var(--success);color:var(--white)}.badge-warning{background-color:var(--warning);color:var(--dark)}.badge-danger{background-color:var(--danger);color:var(--white)}.pagination{display:flex;gap:.25rem;list-style:none}.pagination-item{border:1px solid var(--border)}.pagination-item a{display:block;padding:.5rem .75rem}.pagination-item.active a{background-color:var(--primary);color:var(--white)}.pagination-item a:hover{background-color:var(--gray-light)}.d-flex{display:flex}.d-grid{display:grid}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-none{display:none}.m-0{margin:0}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.mx-auto{margin-left:auto;margin-right:auto}.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:#6c757d}.text-danger{color:#dc3545}.text-success{color:#28a745}.text-warning{color:#ffc107}.text-info{color:#17a2b8}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.flex-center{display:flex;justify-content:center;align-items:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-column{flex-direction:column}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.gap-4{gap:2rem}@media(max-width:768px){.d-sm-none{display:none}}@media(min-width:769px)and (max-width:1024px){.d-md-none{display:none}}.shadow-sm{box-shadow:0 .125rem .25rem #00000013}.shadow{box-shadow:0 .5rem 1rem #00000026}.shadow-lg{box-shadow:0 1rem 3rem #0000002d}.rounded{border-radius:.25rem}.rounded-md{border-radius:.5rem}.rounded-lg{border-radius:1rem}.border{border:1px solid #dee2e6}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.w-100{width:100%}.h-100{height:100%}.max-w-100{max-width:100%}.animate-spin{animation:spin 1s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}#root{min-height:100vh}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}}.app{background-color:#f5f5f5}.modal-backdrop{position:fixed;inset:0;background:#00283c99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.modal-container{background:#fff;border-radius:1.25rem;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #0066cc1a;animation:slideUp .3s ease-out;overflow:hidden;box-sizing:border-box}.modal-container.modal-large{max-width:640px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;background:linear-gradient(to bottom,#f8fafc,#fff);box-sizing:border-box;width:100%}.modal-header h2{font-size:1.25rem;font-weight:600;color:#004c99;font-family:Georgia,serif;margin:0;border-bottom:none;padding-bottom:0}.modal-close-btn{width:36px;height:36px;border-radius:.5rem;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:all .2s ease}.modal-close-btn:hover{background:#f3f4f6;color:#374151}.modal-close-btn svg{width:20px;height:20px}.modal-content{padding:1.5rem;overflow-y:auto;flex:1;width:100%;max-width:none;box-sizing:border-box}.modal-description{color:#6b7280;margin-bottom:1.5rem;line-height:1.5}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#6b7280}.modal-loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#1d8bff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.modal-error{text-align:center;padding:2rem;color:#6b7280}.modal-error-icon{font-size:2.5rem;margin-bottom:1rem}.modal-error p{margin-bottom:1rem}.btn-retry{padding:.5rem 1rem;background:#1d8bff;color:#fff;border:none;border-radius:.5rem;cursor:pointer;font-weight:500;transition:background .2s ease}.btn-retry:hover{background:#06c}.effective-date-section{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:.75rem;padding:1rem;margin-bottom:1.5rem}.field-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#0369a1;margin-bottom:.5rem}.field-label svg{width:18px;height:18px}.date-input-wrapper{display:flex;align-items:center;gap:1rem}.date-input{padding:.625rem .875rem;border:2px solid #7dd3fc;border-radius:.5rem;font-size:.875rem;color:#0c4a6e;background:#fff;cursor:pointer;transition:all .2s ease}.date-input:hover{border-color:#38bdf8}.date-input:focus{outline:none;border-color:#0284c7;box-shadow:0 0 0 3px #0ea5e933}.date-input.error{border-color:#ef4444;background:#fef2f2}.date-input.error:focus{border-color:#dc2626;box-shadow:0 0 0 3px #ef444433}.date-preview{font-size:.875rem;color:#0369a1;font-weight:500}.field-hint{font-size:.75rem;color:#0369a1;margin-top:.5rem;opacity:.8}.field-error{font-size:.75rem;color:#dc2626;margin-top:.5rem;font-weight:500;display:flex;align-items:center;gap:.25rem}.items-section{margin-bottom:1.5rem}.delivery-days-groups{display:flex;flex-direction:column;gap:1.5rem}.delivery-day-group{border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;background:#f9fafb}.delivery-day-title{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.025em;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem}.section-title{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.025em}.empty-message{color:#9ca3af;font-style:italic;padding:1rem;text-align:center;background:#f9fafb;border-radius:.5rem}.items-list{display:flex;flex-direction:column;gap:.5rem}.item-row{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;transition:all .2s ease}.item-row:hover{background:#f3f4f6}.item-row.modified{background:#fefce8;border-color:#fde047}.item-row.marked-for-removal{background:#fef2f2;border-color:#fca5a5;opacity:.8}.item-row.new-item{background:#f0fdf4;border-color:#86efac}.item-info{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.item-name{font-weight:500;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-price{font-size:.75rem;color:#6b7280}.item-controls{display:flex;align-items:center;gap:.75rem}.quantity-control{display:flex;align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:.5rem;overflow:hidden}.qty-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;font-size:1.125rem;font-weight:500;color:#374151;transition:all .15s ease}.qty-btn:hover:not(:disabled){background:#f3f4f6;color:#1d8bff}.qty-btn:disabled{opacity:.5;cursor:not-allowed}.qty-input{width:48px;text-align:center;border:none;border-left:1px solid #d1d5db;border-right:1px solid #d1d5db;padding:.25rem;font-size:.875rem;font-weight:500;color:#374151}.qty-input:focus{outline:none;background:#f9fafb}.qty-input::-webkit-inner-spin-button,.qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.qty-input[type=number]{-moz-appearance:textfield}.removal-badge{font-size:.625rem;font-weight:600;text-transform:uppercase;color:#dc2626;background:#fee2e2;padding:.25rem .5rem;border-radius:.25rem}.remove-new-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;color:#9ca3af;border-radius:.375rem;transition:all .15s ease}.remove-new-btn:hover:not(:disabled){background:#fee2e2;color:#dc2626}.remove-new-btn svg{width:18px;height:18px}.new-items-section,.add-item-section{padding-top:1rem;border-top:1px dashed #d1d5db}.section-description{color:#6b7280;margin-bottom:1rem;font-size:.875rem}.delivery-day-selector{margin-bottom:1rem}.day-selector{width:100%;padding:.625rem .875rem;border:2px solid #d1d5db;border-radius:.5rem;font-size:.875rem;color:#374151;background:#fff;cursor:pointer;transition:all .2s ease}.day-selector:hover{border-color:#9ca3af}.day-selector:focus{outline:none;border-color:#1d8bff;box-shadow:0 0 0 3px #1d8bff26}.dropdown-container{position:relative}.dropdown-label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;background:#fff;border:2px dashed #d1d5db;border-radius:.75rem;cursor:pointer;transition:all .2s ease}.dropdown-trigger:hover{border-color:#1d8bff;background:#f9fafb}.dropdown-trigger.open{border-color:#1d8bff;border-style:solid;box-shadow:0 0 0 3px #1d8bff26}.dropdown-placeholder{display:flex;align-items:center;gap:.5rem;color:#6b7280}.dropdown-placeholder svg{width:20px;height:20px;color:#1d8bff}.dropdown-selected{display:flex;align-items:center;gap:.75rem;flex:1}.dropdown-selected-name{font-weight:500;color:#374151}.dropdown-selected-price{font-size:.875rem;color:#1d8bff;font-weight:600}.dropdown-chevron{width:20px;height:20px;color:#6b7280;transition:transform .2s ease;flex-shrink:0}.dropdown-chevron.rotated{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 10px 40px #00000026;z-index:10;animation:dropdownFadeIn .2s ease-out;overflow:hidden}.dropdown-search{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-bottom:1px solid #e5e7eb;background:#f9fafb}.dropdown-search svg{width:18px;height:18px;color:#9ca3af;flex-shrink:0}.dropdown-search input{flex:1;border:none;background:transparent;font-size:.875rem;color:#374151;outline:none}.dropdown-search input::placeholder{color:#9ca3af}.dropdown-options{max-height:280px;overflow-y:auto}.dropdown-option{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;cursor:pointer;transition:background .15s ease;border-bottom:1px solid #f3f4f6}.dropdown-option:last-child{border-bottom:none}.dropdown-option:hover:not(.already-added){background:#eef8ff}.dropdown-option.selected{background:#d1e9ff}.dropdown-option.already-added{opacity:.5;cursor:not-allowed}.dropdown-option-info{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.dropdown-option-name{font-weight:500;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-option-description{font-size:.75rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-option-price{font-weight:600;color:#1d8bff;font-size:.875rem;flex-shrink:0;margin-left:.75rem}.dropdown-no-results{padding:2rem 1rem;text-align:center;color:#9ca3af}.submit-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fef2f2;color:#dc2626;border-radius:.5rem;font-size:.875rem;margin-top:1rem}.submit-error svg{width:18px;height:18px;flex-shrink:0}.modal-footer{display:flex;gap:.75rem;padding:1.25rem 1.5rem;background:#f9fafb}.btn-cancel,.btn-confirm{flex:1;padding:.875rem 1.5rem;border-radius:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-cancel{background:#fff;color:#374151;border:2px solid #e5e7eb}.btn-cancel:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.btn-confirm{background:linear-gradient(135deg,#1d8bff,#06c);color:#fff;border:none;box-shadow:0 4px 14px #1d8bff59}.btn-confirm:hover:not(:disabled){background:linear-gradient(135deg,#06c,#004c99);transform:translateY(-1px);box-shadow:0 6px 20px #1d8bff66}.btn-confirm:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed;box-shadow:none;transform:none}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.modal-container{max-height:100vh;height:100%;border-radius:0}.modal-container.modal-large{max-width:100%}.modal-backdrop{padding:0}.modal-footer{flex-direction:column-reverse}.dropdown-options{max-height:200px}.item-row{flex-direction:column;align-items:flex-start;gap:.75rem}.item-controls{width:100%;justify-content:space-between}.date-input-wrapper{flex-direction:column;align-items:flex-start;gap:.5rem}}.weekly-total{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border);font-weight:600;color:#004c99}.weekly-total-label{font-size:.9rem}.weekly-total-amount{font-size:1rem}.holiday-modal{max-width:480px}.holiday-dates-section{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.holiday-date-field{flex:1;display:flex;flex-direction:column;gap:.5rem}.holiday-field-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#374151}.holiday-field-label svg{width:18px;height:18px;color:#f59e0b}.holiday-date-input{padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.75rem;font-size:.9rem;color:#374151;background:#fff;cursor:pointer;transition:all .2s ease;width:100%;box-sizing:border-box}.holiday-date-input:hover:not(:disabled){border-color:#fbbf24}.holiday-date-input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}.holiday-date-input:disabled{background:#f9fafb;cursor:not-allowed;opacity:.6}.holiday-date-preview{font-size:.75rem;color:#6b7280;padding-left:.25rem}.holiday-date-arrow{display:flex;align-items:center;justify-content:center;padding-top:2rem}.holiday-date-arrow svg{width:24px;height:24px;color:#d1d5db}.holiday-summary{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #6ee7b7;border-radius:1rem;margin-bottom:1.5rem;animation:summaryFadeIn .3s ease-out}.holiday-summary-icon{flex-shrink:0;width:40px;height:40px;background:#10b981;border-radius:50%;display:flex;align-items:center;justify-content:center}.holiday-summary-icon svg{width:24px;height:24px;color:#fff}.holiday-summary-content{flex:1}.holiday-summary-title{font-size:1.125rem;font-weight:600;color:#065f46;margin:0 0 .25rem}.holiday-summary-dates{font-size:.875rem;color:#047857;margin:0 0 .5rem}.holiday-summary-note{font-size:.75rem;color:#059669;margin:0;opacity:.9}.holiday-info-note{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#f8fafc;border-radius:.75rem;border:1px solid #e2e8f0}.holiday-info-note svg{width:20px;height:20px;color:#64748b;flex-shrink:0;margin-top:.125rem}.holiday-info-note p{font-size:.8rem;color:#64748b;line-height:1.5;margin:0}.btn-holiday-confirm{background:linear-gradient(135deg,#f59e0b,#d97706)!important;box-shadow:0 4px 14px #f59e0b59!important}.btn-holiday-confirm:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309)!important;box-shadow:0 6px 20px #f59e0b66!important}.btn-holiday-confirm svg{width:18px;height:18px}@keyframes summaryFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.holiday-modal{max-width:100%}.holiday-dates-section{flex-direction:column;gap:1rem}.holiday-date-arrow{transform:rotate(90deg);padding:0}.holiday-date-field{width:100%}.holiday-summary{flex-direction:column;text-align:center}.holiday-summary-icon{margin:0 auto}}.confirm-modal{max-width:480px}.confirm-message{font-size:1rem;line-height:1.6;color:var(--text-secondary);margin:0}.btn-destructive{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff}.btn-destructive:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#991b1b);transform:translateY(-1px);box-shadow:0 6px 20px #dc26264d}.btn-destructive:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #dc262633}.delivery-calendar{--dairy-50: #EEF8FF;--dairy-100: #D1E9FF;--dairy-200: #A3D1FF;--dairy-300: #75B9FF;--dairy-400: #47A1FF;--dairy-500: #1D8BFF;--dairy-600: #0066CC;--dairy-700: #004C99;--cream-50: #FFFDF7;--cream-100: #FEF9E7}.delivery-tabs{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 4px 20px #00000014;border:1px solid #e5e7eb;animation:fadeSlideIn .5s ease-out .2s backwards}.delivery-tabs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.delivery-tabs-header h3{font-size:1.5rem;font-weight:600;color:var(--dairy-700);font-family:Georgia,serif;margin:0}.btn-book-holiday{background:var(--dairy-500);color:#fff;padding:.625rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;border:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s ease;box-shadow:0 2px 8px #1d8bff4d}.btn-book-holiday:hover{background:var(--dairy-600);transform:translateY(-1px)}.btn-book-holiday svg{width:1rem;height:1rem}.delivery-tab-nav{border-bottom:2px solid #e5e7eb}.delivery-tab-nav nav{display:flex;gap:.25rem;overflow-x:auto;padding-bottom:0;margin-bottom:-2px;padding-top:.75rem}.delivery-tab-btn{position:relative;white-space:nowrap;padding:.75rem 1rem;font-size:.875rem;font-weight:500;border-radius:.5rem .5rem 0 0;border:1px solid transparent;border-bottom:2px solid transparent;background:transparent;color:#9ca3af;cursor:pointer;transition:all .2s ease}.delivery-tab-btn:hover{color:var(--dairy-700);background:#1d8bff0d}.delivery-tab-btn.active{background:var(--dairy-50);border-color:#e5e7eb;border-bottom-color:var(--dairy-500);color:var(--dairy-700);font-weight:600}.delivery-tab-badge{position:absolute;top:-.5rem;right:-.5rem;padding:.125rem .5rem;border-radius:9999px;font-size:.625rem;font-weight:600;box-shadow:0 2px 4px #0000001a;white-space:nowrap}.delivery-tab-badge.next{background:var(--dairy-500);color:#fff}.delivery-tab-badge.holiday{background:#f97316;color:#fff}.delivery-tab-content{min-height:400px;padding-top:1.5rem}.delivery-tab-panel{display:none}.delivery-tab-panel.active{display:block;animation:fadeIn .3s ease-out}.delivery-holiday-panel{text-align:center;padding:2rem}.delivery-holiday-emoji{font-size:4rem;margin-bottom:1rem}.delivery-holiday-panel h3{font-size:1.5rem;font-weight:600;color:#92400e;margin-bottom:.5rem;font-family:Georgia,serif}.delivery-holiday-panel p{color:#a16207;margin-bottom:1.5rem;max-width:500px;margin-left:auto;margin-right:auto;line-height:1.6}.delivery-holiday-panel p strong{color:#92400e;font-weight:600}.delivery-holiday-actions{display:flex;gap:1rem;justify-content:center}.btn-holiday-change,.btn-holiday-cancel{padding:.75rem 1.5rem;border-radius:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-holiday-change{background:#fef3c7;color:#a16207;border:none}.btn-holiday-change:hover{background:#fde68a}.btn-holiday-cancel{background:#fff;color:#a16207;border:2px solid #fcd34d}.btn-holiday-cancel:hover{border-color:#f59e0b}.delivery-items-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:768px){.delivery-items-grid{grid-template-columns:1fr}}.delivery-items-list{display:flex;flex-direction:column;gap:.75rem}.delivery-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--dairy-50);border-radius:.75rem;transition:all .2s ease}.delivery-item:hover{background:var(--dairy-100)}.delivery-item-image{width:48px;height:48px;object-fit:contain;border-radius:.5rem;background:#fff;padding:.25rem}.delivery-item-info{flex:1}.delivery-item-name{font-weight:500;color:var(--dairy-700);margin:0}.delivery-item-quantity{font-size:.875rem;color:#6b7280;margin:0}.delivery-item-price{font-weight:600;color:var(--dairy-700)}.delivery-item.pending{border-left:3px solid #fbbf24;background:#fffbeb}.delivery-item.pending:hover{background:#fef3c7}.delivery-item-pending-badge{display:inline-block;background-color:#fbbf24;color:#78350f;font-size:.625rem;padding:.125rem .375rem;border-radius:.25rem;margin-left:.5rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.delivery-item.ended{border-left:3px solid #9ca3af;background:#f9fafb;opacity:.75}.delivery-item.ended:hover{background:#f3f4f6;opacity:.85}.delivery-item-ended-badge{display:inline-block;background-color:#9ca3af;color:#374151;font-size:.625rem;padding:.125rem .375rem;border-radius:.25rem;margin-left:.5rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.delivery-total{padding-top:1rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;margin-top:.5rem}.delivery-total-content{text-align:right}.delivery-total-label{font-size:.875rem;color:#6b7280;margin:0}.delivery-total-amount{font-size:1.5rem;font-weight:600;color:var(--dairy-700);font-family:Georgia,serif;margin:0}.delivery-weekly-total{padding-top:.75rem;border-top:2px solid var(--dairy-300);display:flex;justify-content:flex-end;margin-top:.75rem;background:linear-gradient(to right,transparent,var(--dairy-50));padding:1rem;border-radius:.5rem;margin-left:-.5rem;margin-right:-.5rem}.delivery-weekly-total-content{text-align:right}.delivery-weekly-total-label{font-size:.75rem;color:var(--dairy-600);margin:0;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.delivery-weekly-total-amount{font-size:1.75rem;font-weight:700;color:var(--dairy-600);font-family:Georgia,serif;margin:0}.delivery-actions{display:flex;flex-direction:column;gap:.75rem}.btn-delivery-action{width:100%;padding:.875rem 1rem;background:var(--dairy-100);color:var(--dairy-700);border:none;border-radius:.75rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s ease}.btn-delivery-action:hover{background:var(--dairy-200)}.btn-delivery-action svg{width:1.25rem;height:1.25rem}.delivery-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#6b7280}.delivery-loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:var(--dairy-500);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.delivery-empty{text-align:center;padding:3rem;color:#6b7280}.delivery-empty-icon{font-size:3rem;margin-bottom:1rem}.delivery-empty h3{font-size:1.25rem;font-weight:600;color:var(--dairy-700);margin-bottom:.5rem}.delivery-empty p{max-width:300px;margin:0 auto}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.delivery-tabs{padding:1rem}.delivery-tabs-header{flex-direction:column;align-items:flex-start;gap:1rem}.delivery-tab-nav nav{padding-bottom:.5rem}.delivery-tab-btn{padding:.5rem .75rem;font-size:.75rem}.delivery-holiday-actions{flex-direction:column}}.password-wrapper{position:relative}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;font-size:18px;padding:0}.auth-page,.auth-page-main{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);flex:1}.auth-form-container{width:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.auth-form-card{background:var(--white);border-radius:12px;box-shadow:0 10px 40px #00184a1a;padding:3rem;width:100%;max-width:520px;border:2px solid #ddd}.auth-form-card h2{color:var(--primary);font-size:2rem;margin-bottom:2rem;text-align:center;font-weight:700;letter-spacing:-.5px}.login-type-selector{display:flex;flex-direction:column;gap:.8rem;margin-bottom:1.5rem;padding:0;background:transparent;border-radius:8px;border:none}.login-type-option{display:flex;align-items:center;gap:.75rem;flex:1;cursor:pointer;font-weight:500;color:var(--text-dark);font-size:.95rem;padding:1rem;border-radius:8px;transition:all var(--transition-base);border:2px solid #e5e7eb;background:#f9fafb}.login-type-option:hover{background:#fff;border-color:var(--primary);box-shadow:0 2px 8px #00184a14}.login-type-option input[type=radio]:checked+.login-type-content{color:var(--primary)}.login-type-option input[type=radio]{cursor:pointer;width:20px;height:20px;accent-color:var(--primary);flex-shrink:0;margin-top:2px}.login-type-option input[type=radio]:disabled{cursor:not-allowed;opacity:.5}.login-type-content{display:flex;flex-direction:column;gap:.2rem;-webkit-user-select:none;user-select:none}.login-type-title{font-weight:700;font-size:.95rem}.login-type-subtitle{font-weight:400;font-size:.8rem;color:#6b7280}.auth-form{display:flex;flex-direction:column;gap:.8rem}.form-group{display:flex;flex-direction:column;margin-bottom:0}.form-label{display:block;margin-bottom:.6rem;color:var(--text-dark);font-weight:600;font-size:.95rem;letter-spacing:.3px}.form-control{width:100%;padding:.75rem 1rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;font-family:inherit;transition:all var(--transition-base);background:var(--white);line-height:1.5}.form-control::placeholder{color:#999}.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #00184a14;background:var(--white)}.form-control:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.7}.form-control.is-invalid{border-color:var(--danger)}.form-control.is-invalid:focus{box-shadow:0 0 0 4px #dc262614}.form-text{display:block;margin-top:.5rem;font-size:.85rem;color:var(--text-muted);line-height:1.4}.form-text.is-invalid{color:var(--danger);font-weight:500}.form-group.form-check{display:flex;flex-direction:row;align-items:center;gap:.5rem;margin-bottom:0;flex-wrap:nowrap}.form-check{display:flex;align-items:center;gap:.5rem;margin-bottom:0;flex-wrap:nowrap}.form-check input[type=checkbox]{width:18px;height:18px;margin:0;cursor:pointer;accent-color:var(--primary);flex-shrink:0}.form-check-label{margin-bottom:0;cursor:pointer;font-weight:500;font-size:.95rem;color:var(--text-dark);white-space:nowrap;flex-shrink:0}.form-check-label:hover{color:var(--primary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.form-group-half{display:flex;flex-direction:column}@media(max-width:600px){.form-row{grid-template-columns:1fr}.auth-form-card{padding:2rem 1.5rem}.auth-form-card h2{font-size:1.5rem;margin-bottom:1.5rem}}.checkbox-label{display:flex;align-items:center;gap:.6rem;color:var(--text-dark);cursor:pointer;font-size:.95rem;font-weight:500;line-height:1.5}.checkbox-label input[type=checkbox]{cursor:pointer;width:20px;height:20px;accent-color:var(--primary);margin-top:2px}.checkbox-label a{color:var(--primary);text-decoration:none;font-weight:600}.checkbox-label a:hover{text-decoration:underline;opacity:.8}.btn-block{width:100%}.btn-primary{background-color:var(--primary);color:#fff;padding:.9rem 1.5rem;border:none;border-radius:.5rem;font-size:1.05rem;font-weight:700;cursor:pointer;transition:all var(--transition-base);letter-spacing:.3px}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 20px #00184a4d}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.forgot-password-link{display:inline-flex;justify-content:flex-start;color:var(--primary);text-decoration:none;font-size:.9rem;font-weight:600;transition:all var(--transition-base);margin-bottom:1rem}.forgot-password-link:hover{text-decoration:underline;color:var(--primary-dark);opacity:.9}.auth-footer{margin-top:2rem;padding-top:1.5rem;border-top:2px solid #e0e0e0;text-align:center;color:var(--text-muted)}.auth-footer p{margin:0;font-size:.95rem;line-height:1.6}.auth-footer a{color:var(--primary);text-decoration:none;font-weight:700;transition:all var(--transition-base)}.auth-footer a:hover{text-decoration:underline;color:var(--primary-dark);opacity:.9}.alert{padding:1rem 1.2rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem;line-height:1.6;border:1px solid}.alert-danger{background-color:#fef2f2;color:#991b1b;border-color:#fecaca}.alert-success{background-color:#f0fdf4;color:#166534;border-color:#bbf7d0}.alert p{margin:.5rem 0}.alert p:first-child{margin-top:0}.alert p:last-child{margin-bottom:0}@media(max-width:600px){.auth-form-card{max-width:100%}.auth-form-card h2{font-size:1.5rem}}.error-main{display:flex;align-items:center;justify-content:center;flex:1}.error-page{display:flex;align-items:center;justify-content:center;width:100%;padding:2rem}.error-container{text-align:center;background:var(--white);border-radius:12px;padding:3rem 2rem;max-width:600px;width:100%;box-shadow:0 10px 40px #00184a1a}.error-code{font-size:6rem;font-weight:900;color:var(--primary);margin:0;line-height:1;letter-spacing:-2px}.error-title{font-size:2rem;font-weight:700;color:var(--text-dark);margin:1rem 0 .5rem}.error-message{font-size:1rem;color:var(--text-muted);margin:1rem 0 2rem;line-height:1.6}.error-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem;flex-wrap:wrap}.btn-secondary{background-color:#e5e7eb;color:var(--text-dark);padding:.9rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:700;text-decoration:none;cursor:pointer;transition:all var(--transition-base);display:inline-block}.btn-secondary:hover{background-color:#d1d5db;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.error-help{padding-top:2rem;border-top:1px solid #e5e7eb;color:var(--text-muted);font-size:.95rem}.error-help a{color:var(--primary);text-decoration:none;font-weight:700}.error-help a:hover{text-decoration:underline}@media(max-width:600px){.error-page{padding:1rem}.error-container{padding:2rem 1.5rem}.error-code{font-size:4rem}.error-title{font-size:1.5rem}.error-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}
