.btn-primary{color:#fff;background-color:#2d5a27;border-color:#2d5a27}.btn-primary:hover{color:#fff;background-color:#3d7a35;border-color:#3d7a35}.btn-primary:focus-visible{outline-offset:2px;outline:2px solid #2d5a27}.btn-secondary{color:#2d5a27;background-color:#0000;border-color:#2d5a27}.btn-secondary:hover{background-color:#2d5a2714}:root{color:#213547;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}body{min-width:320px;min-height:100vh;margin:0}a{color:#2d5a27;font-weight:500;text-decoration:none}a:hover{color:#3d7a35;text-decoration:underline}h1{color:#213547;margin:0 0 1.5rem;font-size:1.75rem;line-height:1.2}button{cursor:pointer;background-color:#fff;border:1px solid #00000026;border-radius:8px;padding:.5rem 1rem;font-family:inherit;font-size:.9375rem;font-weight:500;transition:background-color .2s,border-color .2s}button:hover{background-color:#f5f5f5;border-color:#2d5a27}button:focus-visible{outline-offset:2px;outline:2px solid #2d5a27}input{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:.5rem .75rem;font-family:inherit;font-size:.9375rem}input:focus{outline-offset:0;outline:2px solid #2d5a27}select{color:#213547;cursor:pointer;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;border:1px solid #e0e0e0;border-radius:8px;min-height:2.5rem;padding:.5rem 2rem .5rem .75rem;font-family:inherit;font-size:.9375rem;transition:border-color .2s,box-shadow .2s}select:hover{border-color:#bbb}select:focus{border-color:#2d5a27;outline:none;box-shadow:0 0 0 3px #2d5a2726}select:disabled{opacity:.6;cursor:not-allowed}select option{color:#213547;background:#fff;padding:.5rem}label{color:#213547;font-weight:500}.custom-select{width:100%;min-width:10rem;position:relative}.custom-select-trigger{color:#213547;cursor:pointer;text-align:left;background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;width:100%;min-height:2.5rem;padding:.5rem 2rem .5rem .75rem;font-family:inherit;font-size:.9375rem;transition:border-color .2s,box-shadow .2s;display:flex}.custom-select-trigger .custom-select-placeholder{color:#666}.custom-select-trigger .custom-select-arrow{color:#666;font-size:.6rem;transition:transform .2s;position:absolute;right:.75rem}.custom-select-trigger:hover{border-color:#bbb}.custom-select-trigger:focus{border-color:#2d5a27;outline:none;box-shadow:0 0 0 3px #2d5a2726}.custom-select.is-open .custom-select-arrow{transform:rotate(180deg)}.custom-select-backdrop{z-index:199;background:0 0;position:fixed;inset:0}.custom-select-panel{z-index:200;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;max-height:16rem;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 4px 20px #00000026}.custom-select-search{background:#f5f5f5;border-bottom:1px solid #e0e0e0;flex-shrink:0;padding:.5rem .75rem}.custom-select-search-input{background:#fff;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:.5rem .75rem;font-size:.9375rem}.custom-select-search-input:focus{border-color:#2d5a27;outline:none}.custom-select-list{flex:1;min-height:0;margin:0;padding:.25rem 0;list-style:none;overflow-y:auto}.custom-select-empty{color:#666;text-align:center;padding:1rem;font-size:.9375rem}.custom-select-load-more{text-align:center;border-top:1px solid #e0e0e0;flex-shrink:0;padding:.5rem}.custom-select-load-more-btn{color:#2d5a27;cursor:pointer;background:0 0;border:none;width:100%;padding:.5rem;font-size:.875rem}.custom-select-load-more-btn:hover{text-decoration:underline}.custom-select-option{margin:0}.custom-select-option-btn{text-align:left;cursor:pointer;color:#213547;background:0 0;border:none;width:100%;padding:.625rem 1rem;font-family:inherit;font-size:.9375rem;transition:background .15s;display:block}.custom-select-option-btn:hover{background:#f5f5f5}.custom-select-option-btn.is-selected{color:#2d5a27;background:#2d5a271f;font-weight:500}@media (width<=768px){.custom-select-backdrop{background:#0006}.custom-select-panel{border-bottom:none;border-radius:8px 8px 0 0;max-height:70vh;position:fixed;inset:auto 0 0;box-shadow:0 -4px 24px #0003}.custom-select-option-btn{min-height:3rem;padding:.875rem 1.25rem;font-size:1rem}}.signin-page{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.signin-card{background:#fff;border-radius:8px;width:100%;max-width:22rem;padding:3rem;box-shadow:0 4px 20px #00000026}.signin-heading{color:#2d5a27;margin:0 0 .25rem;font-size:1.5rem}.signin-subheading{color:#666;margin:0 0 1.5rem;font-size:.9375rem}.signin-form{flex-direction:column;gap:1rem;display:flex}.signin-form .form-row{flex-direction:column;gap:.25rem;display:flex}.signin-form .form-row label{font-size:.875rem;display:flex}.signin-error{color:#c62828;margin:0;font-size:.875rem}.signin-submit{width:100%;margin-top:.5rem}.app-layout{min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex}.sidenav-toggle{z-index:100;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;width:2.5rem;height:2.5rem;padding:.5rem;display:none;position:fixed;top:1rem;left:1rem;box-shadow:0 2px 8px #0000001a}.sidenav-toggle .sidenav-toggle-bar{background:#213547;border-radius:1px;width:1.25rem;height:2px;display:block}.sidenav-overlay{z-index:101;background:#0006;display:none;position:fixed;inset:0}.sidenav{background:#fff;border-right:1px solid #e0e0e0;flex-direction:column;flex-shrink:0;width:12rem;padding:1.5rem;display:flex}.sidenav .sidenav-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.sidenav .sidenav-heading{color:#2d5a27;letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:700}.sidenav .sidenav-close{cursor:pointer;color:#213547;background:0 0;border:none;padding:.25rem;font-size:1.5rem;line-height:1;display:none}.sidenav .sidenav-close:hover{color:#2d5a27}.sidenav .sidenav-nav{flex-direction:column;flex:1;display:flex}.sidenav .sidenav-nav .sidenav-top{flex-direction:column;gap:.25rem;display:flex}.sidenav .sidenav-nav .sidenav-bottom{border-top:1px solid #e0e0e0;margin-top:auto;padding-top:1.5rem}.sidenav .sidenav-nav a{color:#213547;border-radius:8px;padding:.5rem .75rem;text-decoration:none;display:block}.sidenav .sidenav-nav a:hover{color:#2d5a27;background:#f5f5f5;text-decoration:none}.sidenav .sidenav-nav a.active{color:#2d5a27;background:#2d5a271a;font-weight:600}.sidenav .sidenav-nav .sidenav-signout{text-align:left;color:#666;cursor:pointer;background:0 0;border:none;border-radius:8px;width:100%;margin-top:.5rem;padding:.5rem .75rem;font-size:.9375rem;font-weight:500;display:block}.sidenav .sidenav-nav .sidenav-signout:hover{color:#c62828;background:#f5f5f5}.app-content{flex:1;width:100%;max-width:1200px;padding:1.5rem}@media (width<=768px){.sidenav-toggle{display:flex}.sidenav-overlay{opacity:0;pointer-events:none;transition:opacity .2s}.app-layout.sidenav-open .sidenav-overlay{opacity:1;pointer-events:auto;display:block}.sidenav{z-index:102;width:14rem;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 4px 20px #00000026}.app-layout.sidenav-open .sidenav{transform:translate(0)}.sidenav-close{display:block}.app-content{padding-top:3.5rem}}.list-page .list-toolbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.list-page .list-toolbar .search-input-wrap{flex:1;min-width:12rem;max-width:20rem;position:relative}.list-page .list-toolbar .search-input-icon{color:#666;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.list-page .list-toolbar .search-input{width:100%;padding-left:2.5rem;padding-right:.75rem}.list-page .list-toolbar .filter-group{align-items:center;gap:.5rem;display:flex}.list-page .list-toolbar .filter-group label{margin-right:.25rem}.list-page .list-toolbar .store-filter-lowstock{cursor:pointer;align-items:center;gap:.5rem;font-weight:500;display:flex}.list-page .list-toolbar .store-selection-count{color:#666;font-size:.9375rem}.list-page .store-lowstock-hint,.list-page .store-export-hint{color:#666;margin:0 0 1rem;font-size:.9375rem}.list-page .list-table td.list-empty{text-align:center;color:#666;padding:2rem}.list-page .list-table{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;overflow:hidden;box-shadow:0 2px 8px #0000001a}.list-page .list-table .col-checkbox{text-align:center;vertical-align:middle;width:2.5rem}.list-page .list-table .checkbox-cell{cursor:pointer;align-items:center;display:inline-flex}.list-page .list-table .checkbox-cell input[type=checkbox]{cursor:pointer;width:1.125rem;height:1.125rem}.list-page .list-table th,.list-page .list-table td{text-align:left;border-bottom:1px solid #e0e0e0;padding:.75rem 1rem}.list-page .list-table th{color:#213547;background:#f5f5f5;font-weight:600}.list-page .list-table tbody tr:hover{background:#00000005}.list-page .list-table tbody tr.low-stock{background:#c6282814}.list-page .list-table .btn-cell{white-space:nowrap;gap:.5rem;min-height:40px;display:flex}@media (width<=768px){.list-page .list-table .col-id,.list-page .list-table .col-base_unit,.list-page .list-table .col-consumption_unit,.list-page .list-table .col-conversion_factor,.list-page .list-table .col-status{display:none}}.list-page .pagination{border-top:1px solid #e0e0e0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;display:flex}.list-page .pagination .pagination-info{color:#666;font-size:.9375rem}.list-page .pagination .pagination-info .pagination-total{font-weight:500}.list-page .pagination .pagination-buttons{gap:.5rem;display:flex}.list-page .pagination .pagination-btn{padding:.4rem .75rem;font-size:.875rem}.list-page .pagination .pagination-btn:disabled{opacity:.5;cursor:not-allowed}.list-page .settings-intro{color:#666;max-width:42rem;margin:0 0 1.5rem}.list-page .settings-section{margin-bottom:2.5rem}.list-page .settings-section:last-child{margin-bottom:0}.list-page .settings-section .settings-section-title{color:#213547;margin:0 0 1rem;font-size:1.25rem;font-weight:600}.list-page .settings-section .settings-section-intro{color:#666;margin:0 0 1rem;font-size:.9375rem}.list-page .settings-tabs{border-bottom:1px solid #e0e0e0;gap:0;margin-bottom:1.5rem;display:flex}.list-page .settings-tabs .settings-tab{color:#666;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:.75rem 1.25rem;font-size:1rem;font-weight:500}.list-page .settings-tabs .settings-tab:hover{color:#213547}.list-page .settings-tabs .settings-tab.active{color:#2d5a27;border-bottom-color:#2d5a27}.list-page .loading,.list-page .error{text-align:center;padding:1.5rem}.list-page .error{color:#c62828}.dialog-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog-overlay[hidden]{display:none}.dialog{background:#fff;border-radius:8px;width:100%;max-width:28rem;max-height:90vh;overflow:auto;box-shadow:0 4px 20px #00000026}.dialog .dialog-header{margin-bottom:1rem;padding:1.5rem 1.5rem 0}.dialog .dialog-header h2{margin:0;font-size:1.25rem;font-weight:600}.dialog .dialog-body{padding:0 1.5rem 1.5rem}.dialog .dialog-form{flex-direction:column;gap:1rem;display:flex}.dialog .dialog-form .form-row{flex-direction:column;gap:.25rem;display:flex}.dialog .dialog-form .form-row label{font-size:.875rem}.dialog .dialog-actions{border-top:1px solid #e0e0e0;justify-content:flex-end;gap:1rem;margin-top:1.5rem;padding-top:1rem;display:flex}.export-column-picker .export-column-list{flex-direction:column;gap:.5rem;margin:1rem 0 1.5rem;display:flex}.export-column-picker .export-column-option{cursor:pointer;align-items:center;gap:.5rem;font-weight:400;display:flex}.export-column-picker .export-column-option input[type=checkbox]{cursor:pointer;width:1.125rem;height:1.125rem}
