.humidor-form-modal{max-width:600px;background:#2a2a2a;border:1px solid #3a3a3a}.humidor-form{padding:2rem}.humidor-form .form-group{margin-bottom:1.5rem}.humidor-form .form-group label{display:block;margin-bottom:.5rem;color:#aaa;font-weight:500;font-size:.9rem}.humidor-form .form-group input,.humidor-form .form-group select{width:100%;padding:.75rem;border:2px solid #4a4a4a;border-radius:6px;font-size:1rem;transition:border-color .2s;background:#1a1a1a;color:#e0e0e0}.humidor-form .form-group input:focus,.humidor-form .form-group select:focus{outline:none;border-color:#4a9eff}.humidor-form .form-group small{display:block;color:#888;font-size:11px;margin-top:4px}.humidor-form .form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.humidor-form .form-row input{width:100%}.humidor-form .form-row small{font-size:10px;color:#888}.humidor-form .checkbox-group{display:flex;align-items:center;gap:.5rem}.humidor-form .checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.humidor-form .checkbox-group label{margin:0;cursor:pointer;font-weight:400;color:#e0e0e0}.overhang-fields{border-left:3px solid #4a9eff;padding-left:1.5rem;margin-top:1rem}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid #3a3a3a;margin-top:1.5rem}.form-actions .btn-primary,.form-actions .btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;cursor:pointer;font-weight:500;transition:all .2s}.form-actions .btn-primary{background:#4a9eff;color:#fff}.form-actions .btn-primary:hover{background:#3a8eef;transform:translateY(-1px);box-shadow:0 4px 8px #4a9eff4d}.form-actions .btn-secondary{background:#3a3a3a;color:#e0e0e0;border:2px solid #4a4a4a}.form-actions .btn-secondary:hover{background:#4a4a4a;border-color:#5a5a5a}.modal-header{border-bottom:1px solid #3a3a3a;padding:1.5rem}.modal-header h2{color:#e0e0e0}.btn-close{background:none;border:none;font-size:2rem;color:#999;cursor:pointer}@media(max-width:767px){.humidor-form-modal{width:100%!important;max-width:100%!important;height:100vh;max-height:100vh;border-radius:0;margin:0}.form-row{grid-template-columns:1fr!important}}.humidor-viewer{background:#2a2a2a;border-radius:8px;padding:.75rem;box-shadow:0 2px 8px #0000004d;border:1px solid #3a3a3a;display:flex;flex-direction:column;height:100%}.humidor-viewer.empty{display:flex;align-items:center;justify-content:center;color:#999;font-size:1.1rem}.viewer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-shrink:0}.viewer-header h3{margin:0;color:#e0e0e0;font-size:1rem}.viewer-stats{display:flex;gap:.5rem;font-size:.75rem;color:#aaa}.viewer-stats span{background:#3a3a3a;padding:.2rem .5rem;border-radius:3px;color:#e0e0e0;font-size:.75rem}.viewer-container{flex:1;min-height:400px;border:1px solid #3a3a3a;border-radius:4px;overflow:hidden;background:#1a1a1a;cursor:grab;position:relative}.viewer-container:active{cursor:grabbing}.viewer-legend{display:flex;gap:.75rem;align-items:center;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #3a3a3a;flex-shrink:0}.legend-item{display:flex;align-items:center;gap:.3rem;font-size:.7rem;color:#aaa}.legend-color{width:12px;height:12px;border-radius:2px;border:1px solid #999}.viewer-controls{margin-left:auto;color:#777;font-size:.7rem}.info-panel{position:absolute;top:10px;right:10px;background:#2a2a2af2;border:2px solid #4a4a4a;border-radius:8px;padding:1rem;min-width:280px;box-shadow:0 4px 12px #00000080;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.info-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #4a4a4a}.info-panel h4{margin:0 0 .25rem;color:#e0e0e0;font-size:1.1rem;font-weight:600}.info-panel-subtitle{color:#aaa;font-size:.9rem;margin-bottom:.5rem}.info-panel-edit-btn{background:#4a4a4a;border:1px solid #5a5a5a;border-radius:6px;padding:.4rem .6rem;cursor:pointer;font-size:1rem;transition:all .2s ease;flex-shrink:0}.info-panel-edit-btn:hover{background:#5a5a5a;border-color:#6a6a6a;transform:scale(1.05)}.info-panel-edit-btn:active{transform:scale(.95)}.info-panel-row{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.9rem}.info-panel-label{color:#999;font-weight:500}.info-panel-value{color:#e0e0e0;text-align:right}.optimization-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#4a9eff26;pointer-events:none;z-index:5}.optimization-progress-fill{height:100%;background:#4a9eff;transition:width .1s linear}.optimization-progress-label{position:absolute;bottom:6px;left:8px;font-size:.7rem;color:#ffffffb3;pointer-events:none;z-index:5}.box-inventory{background:#2a2a2a;border-radius:8px;padding:.75rem;box-shadow:0 2px 8px #0000004d;border:1px solid #3a3a3a;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.box-inventory.expanded{position:fixed;inset:0;z-index:1000;border-radius:0;padding:1.5rem;overflow-y:auto}.inventory-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.inventory-header-buttons{display:flex;gap:.5rem;align-items:center}.btn-expand{background:#3a3a3a;color:#e0e0e0;border:1px solid #4a4a4a;padding:.4rem .75rem;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-expand:hover{background:#4a4a4a;border-color:#5a5a5a}.inventory-title h2{margin:0 0 .25rem;color:#e0e0e0;font-size:1.1rem}.inventory-stats{display:flex;gap:.5rem;font-size:.8rem;color:#aaa;flex-wrap:wrap}.inventory-stats span{background:#3a3a3a;padding:.2rem .5rem;border-radius:3px;color:#aaa;font-size:.75rem}.box-inventory .btn-primary{background:#4a9eff;color:#fff;border:none;padding:.4rem .75rem;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s;white-space:nowrap}.box-inventory .btn-primary:hover{background:#3a8eef;transform:translateY(-1px);box-shadow:0 4px 8px #4a9eff4d}.empty-state{text-align:center;padding:1.5rem;color:#888;font-size:.9rem}.table-container{overflow-x:auto}.inventory-table{width:100%;border-collapse:collapse;font-size:.85rem}.inventory-table thead{position:sticky;top:0;z-index:1;background:#2a2a2a}.inventory-table th{text-align:left;padding:.5rem .6rem;font-weight:600;color:#aaa;white-space:nowrap;border-bottom:1px solid #3a3a3a;font-size:.8rem;background:#2a2a2a}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-header:hover{background:#3a3a3a}.inventory-table td{padding:.5rem .6rem;border-bottom:1px solid #3a3a3a;color:#e0e0e0}.inventory-table tbody tr{background:#1a1a1a}.inventory-table tbody tr:hover{background:#222}.filter-bar{background:#1e1e1e;border:1px solid #3a3a3a;border-radius:6px;padding:.6rem;margin-bottom:.5rem}.filter-row{display:flex;flex-wrap:wrap;gap:.5rem}.filter-field{display:flex;flex-direction:column;gap:.2rem;min-width:0;flex:1 1 120px}.filter-field label{font-size:.7rem;color:#888;white-space:nowrap}.filter-field input,.filter-field select{background:#2a2a2a;border:1px solid #3a3a3a;border-radius:3px;color:#e0e0e0;padding:.3rem .4rem;font-size:.8rem;min-width:0}.filter-field input:focus,.filter-field select:focus{outline:none;border-color:#4a9eff}.filter-field input::placeholder{color:#555}.filter-input-wrap{position:relative;display:flex;align-items:center;min-width:0;flex:1}.filter-input-wrap input,.filter-input-wrap select{width:100%;padding-right:1.4rem}.btn-clear-field{position:absolute;right:2px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#666;cursor:pointer;font-size:.75rem;padding:0 .3rem;line-height:1}.btn-clear-field:hover{color:#e0e0e0}.filter-range{display:flex;gap:.25rem}.filter-range .filter-input-wrap{width:50%}.btn-clear-filters{background:transparent;border:none;color:#4a9eff;cursor:pointer;font-size:.75rem;padding:.3rem 0;margin-top:.4rem}.btn-clear-filters:hover{color:#6ab4ff}.filter-active{border-color:#4a9eff!important;color:#4a9eff!important}.brand-cell{font-weight:600;color:#e0e0e0}.year-cell,.code-cell,.cigar-size-cell,.smoke-time-cell{color:#aaa;font-size:.85rem}.count-cell{text-align:center;font-weight:500}.aging-cell{text-align:center;color:#4a9eff;font-size:1.1rem}.price-cell,.value-cell{text-align:right;font-family:Courier New,monospace;color:#aaa;font-size:.85rem}.actions-cell{text-align:right;white-space:nowrap}.btn-edit,.btn-locate{background:#5a5a5a;color:#fff;border:none;padding:.35rem .5rem;border-radius:3px;cursor:pointer;transition:background .2s;font-size:.8rem;margin-right:.25rem}.btn-edit:hover,.btn-locate:hover{background:#6a6a6a}.btn-unassign{margin-left:.5rem;background:transparent;border:none;color:#888;cursor:pointer;font-size:.85rem}.btn-unassign:hover{color:#e0e0e0}.unplaced-text{color:#888}.table-container{overflow:auto;border-radius:6px;border:1px solid #3a3a3a;background:#1a1a1a;flex:1;min-height:0}.selected-row{background:#222!important;border-left:3px solid #5a5a5a}.brand-cell{font-weight:600}@media(max-width:767px){.box-inventory.expanded{bottom:56px}.filter-bar{gap:.25rem}.inventory-table{font-size:.75rem}.inventory-table th,.inventory-table td{padding:.3rem .4rem}}.combobox-wrapper{position:relative}.combobox-wrapper input{padding-right:1.5rem}.combobox-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:#999;font-size:1rem;cursor:pointer;padding:0;line-height:1;width:18px;height:18px;display:flex;align-items:center;justify-content:center}.combobox-clear:hover{color:#e0e0e0}.combobox-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:#1a1a1a;border:1px solid #4a4a4a;border-top:none;border-radius:0 0 4px 4px;z-index:10}.combobox-option{padding:.4rem;cursor:pointer;color:#e0e0e0;font-size:.85rem}.combobox-option:hover,.combobox-option.highlighted{background:#3a3a3a}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#2a2a2a;border-radius:8px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;border:1px solid #3a3a3a}.box-form-modal{max-width:1200px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid #3a3a3a}.modal-header h2{margin:0;color:#e0e0e0;font-size:1rem}.btn-close{background:none;border:none;font-size:1.5rem;color:#999;cursor:pointer;line-height:1;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.box-form{padding:1rem}.form-group{margin-bottom:.75rem}.form-group label{display:block;margin-bottom:.25rem;color:#aaa;font-weight:500;font-size:.8rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.4rem;border:1px solid #4a4a4a;border-radius:4px;font-size:.85rem;transition:border-color .2s;font-family:inherit;background:#1a1a1a;color:#e0e0e0}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#4a9eff}.form-group textarea{resize:vertical}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.form-row input{width:100%}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.75rem}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;margin-bottom:.75rem}.form-row-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:.5rem;margin-bottom:.75rem}.checkbox-group{display:flex;align-items:center;gap:.5rem;margin-top:.35rem}.checkbox-group input[type=checkbox]{width:14px;height:14px;cursor:pointer}.checkbox-group label{margin:0;cursor:pointer;font-weight:400;font-size:.8rem}.calculated-field{padding:.4rem;background:#1a1a1a;border:1px solid #4a4a4a;border-radius:4px;color:#e0e0e0;font-family:Courier New,monospace;font-size:.85rem}.form-actions{display:flex;justify-content:flex-start;gap:.5rem;padding-top:.75rem;border-top:1px solid #3a3a3a;align-items:center}.btn-primary,.btn-secondary,.btn-danger{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;font-weight:500;transition:all .2s}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}@media(max-width:767px){.modal-content{width:100%!important;max-width:100%!important;height:100vh;max-height:100vh;border-radius:0;margin:0}.form-row-4{grid-template-columns:1fr 1fr!important}}.csv-import-modal{max-width:900px;max-height:90vh;background:#2a2a2a;border:1px solid #3a3a3a}.modal-body{padding:2rem;overflow-y:auto;max-height:calc(90vh - 100px)}.csv-upload-section{text-align:center;padding:2rem 0}.csv-upload-section p{margin-bottom:2rem;color:#aaa;line-height:1.6}.file-upload-label{display:inline-block;cursor:pointer}.file-upload-label input[type=file]{display:none}.file-upload-button{display:inline-block;padding:1rem 2rem;background:#4a9eff;color:#fff;border-radius:8px;font-size:1.1rem;font-weight:500;transition:all .2s}.file-upload-label:hover .file-upload-button{background:#3a8eef;transform:translateY(-1px);box-shadow:0 4px 8px #4a9eff4d}.csv-format-info{margin-top:3rem;padding:1.5rem;background:#1a1a1a;border-radius:8px;text-align:left;border:1px solid #3a3a3a}.csv-format-info h4{margin:0 0 1rem;color:#4a9eff}.csv-format-info pre{background:#0a0a0a;padding:1rem;border-radius:4px;overflow-x:auto;font-size:.9rem;color:#e0e0e0;border:1px solid #3a3a3a}.csv-options{margin-bottom:2rem;padding:1rem;background:#1a1a1a;border-radius:6px;border:1px solid #3a3a3a}.csv-options label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.95rem;color:#e0e0e0}.csv-options input[type=checkbox]{width:18px;height:18px;cursor:pointer}.csv-mapping-section{margin-bottom:2rem}.csv-mapping-section h3{margin:0 0 .5rem;color:#e0e0e0;font-size:1.2rem}.mapping-hint{margin-bottom:1.5rem;color:#aaa;font-size:.9rem}.csv-mapping-grid{display:grid;gap:.75rem}.csv-mapping-row{display:grid;grid-template-columns:200px 1fr;gap:1rem;align-items:center}.csv-mapping-label{font-size:.9rem;color:#aaa;font-weight:500}.csv-mapping-row select{padding:.5rem;border:2px solid #4a4a4a;border-radius:4px;font-size:.9rem;background:#1a1a1a;color:#e0e0e0;cursor:pointer}.csv-mapping-row select:focus{outline:none;border-color:#4a9eff}.csv-preview-section{margin-bottom:2rem}.csv-preview-section h3{margin:0 0 1rem;color:#e0e0e0;font-size:1.2rem}.csv-preview{background:#1a1a1a;padding:1rem;border-radius:6px;font-family:Courier New,monospace;font-size:.85rem;overflow-x:auto;border:1px solid #3a3a3a}.preview-row{padding:.5rem 0;border-bottom:1px solid #3a3a3a;color:#e0e0e0}.preview-row:last-child{border-bottom:none}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid #3a3a3a}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;cursor:pointer;font-weight:500;transition:all .2s}.btn-secondary{background:#3a3a3a;color:#e0e0e0;border:2px solid #4a4a4a}@media(max-width:767px){.csv-import-modal{width:100%!important;max-width:100%!important;height:100vh;max-height:100vh;border-radius:0;margin:0}}.settings-modal{max-width:700px;background:#2a2a2a;border:1px solid #3a3a3a}.settings-modal .modal-body{padding:1.25rem;max-height:calc(90vh - 150px);overflow-y:auto}.settings-modal .modal-body::-webkit-scrollbar{width:6px}.settings-modal .modal-body::-webkit-scrollbar-track{background:#1a1a1a}.settings-modal .modal-body::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:3px}.settings-modal .modal-body::-webkit-scrollbar-thumb:hover{background:#5a5a5a}.settings-modal .form-group{margin-bottom:1rem}.settings-modal .form-group h3{font-size:.85rem;margin:0 0 .5rem;color:#e0e0e0;font-weight:600}.settings-modal .form-group label{display:block;margin-bottom:.35rem;color:#aaa;font-weight:500;font-size:.85rem}.settings-modal .form-group select,.settings-modal .form-group input[type=number]{width:100%;padding:.5rem;border:1px solid #4a4a4a;border-radius:4px;font-size:.9rem;transition:border-color .2s;background:#1a1a1a;color:#e0e0e0}.settings-modal .form-group select:focus,.settings-modal .form-group input:focus{outline:none;border-color:#4a9eff}.settings-modal .form-group small{display:block;color:#888;font-size:.75rem;margin-top:.25rem}.settings-modal .checkbox-group{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.settings-modal .checkbox-group input[type=checkbox]{width:16px;height:16px;cursor:pointer}.settings-modal .checkbox-group input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.settings-modal .checkbox-group label{margin:0;cursor:pointer;font-weight:400;font-size:.85rem;color:#e0e0e0}.settings-modal .checkbox-group input[type=checkbox]:disabled+label{cursor:not-allowed;opacity:.7}.settings-modal .btn-danger{background:#dc3545;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;cursor:pointer;font-weight:500;transition:background .2s}.settings-modal .btn-danger:hover{background:#c82333}.modal-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#2a2a2a;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;border:1px solid #3a3a3a}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:#1a1a1a}.modal-content::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:3px}.modal-content::-webkit-scrollbar-thumb:hover{background:#5a5a5a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #3a3a3a}.modal-header h2{margin:0;color:#e0e0e0;font-size:1.1rem}.btn-close{background:none;border:none;font-size:1.5rem;color:#999;cursor:pointer;line-height:1;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.btn-close:hover{color:#e0e0e0}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #3a3a3a}.modal-footer .btn-primary,.modal-footer .btn-secondary{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;font-weight:500;transition:all .2s}.modal-footer .btn-primary{background:#4a9eff;color:#fff}.modal-footer .btn-primary:hover{background:#3a8eef;transform:translateY(-1px);box-shadow:0 4px 8px #4a9eff4d}.modal-footer .btn-secondary{background:#3a3a3a;color:#e0e0e0;border:1px solid #4a4a4a}.modal-footer .btn-secondary:hover{background:#4a4a4a;border-color:#5a5a5a}@media(max-width:767px){.settings-modal{width:100%!important;max-width:100%!important;height:100vh;max-height:100vh;border-radius:0;margin:0}}.irl-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000}.irl-modal{background:#2a2a2a;border:1px solid #3a3a3a;border-radius:10px;padding:24px;width:600px;max-width:96vw;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.irl-header{display:flex;align-items:center;justify-content:space-between}.irl-header h2{margin:0;font-size:1.1rem;color:#e0e0e0}.irl-close{background:none;border:none;color:#888;font-size:1.2rem;cursor:pointer;padding:4px 8px}.irl-close:hover{color:#e0e0e0}.irl-layer-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.irl-layer-label{font-size:1rem;color:#e0e0e0;font-weight:600;text-align:center}.irl-layer-z{color:#888;font-weight:400;font-size:.85rem}.irl-diagram-wrap{background:#111;border-radius:6px;border:1px solid #3a3a3a;display:flex;justify-content:center;padding:4px}.irl-svg{display:block}.irl-box-list h3{margin:0 0 8px;font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.05em}.irl-box-items{display:flex;flex-direction:column;gap:4px;height:160px;overflow-y:auto}.irl-box-item{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#ccc}.irl-box-swatch{width:12px;height:12px;border-radius:2px;flex-shrink:0}.irl-box-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.irl-box-dims{color:#666;font-size:.78rem;white-space:nowrap}.irl-footer{display:flex;justify-content:space-between}@media(max-width:767px){.irl-modal{width:100%!important;max-width:100%!important;height:100vh;max-height:100vh;border-radius:0;margin:0}}.mobile-tab-bar{display:none}@media(max-width:767px){.mobile-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background:#1e1e1e;border-top:1px solid #3a3a3a;z-index:100;padding-bottom:env(safe-area-inset-bottom)}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#888;font-size:.65rem;gap:2px;background:none;border:none;cursor:pointer;transition:color .15s}.mobile-tab.active{color:#4a9eff}.mobile-tab svg{width:22px;height:22px}}.login-page{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:#1a1a1a;color:#e0e0e0}.login-card{background:#2a2a2a;border-radius:12px;padding:2.5rem;width:100%;max-width:380px;box-shadow:0 8px 32px #0006}.login-card h1{text-align:center;margin-bottom:2rem;font-size:1.5rem;color:#4a9eff}.login-card .form-field{margin-bottom:1.25rem}.login-card .form-field label{display:block;margin-bottom:.4rem;font-size:.875rem;color:#aaa}.login-card .form-field input{width:100%;padding:.6rem .8rem;background:#1a1a1a;border:1px solid #444;border-radius:6px;color:#e0e0e0;font-size:.95rem;outline:none;transition:border-color .2s}.login-card .form-field input:focus{border-color:#4a9eff}.login-card .btn-primary{width:100%;margin-top:.5rem}.login-error{color:#ff6b6b;font-size:.875rem;text-align:center;margin-bottom:.5rem}.app{width:100%;height:100vh;display:flex;flex-direction:column;background:#1a1a1a;color:#e0e0e0}.btn-primary,.btn-secondary,.btn-danger{padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.95rem;cursor:pointer;transition:all .2s;font-weight:500}.btn-primary{background:#4a9eff;color:#fff}.btn-primary:hover{background:#3a8eef;transform:translateY(-1px);box-shadow:0 4px 8px #4a9eff4d}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b;transform:translateY(-1px);box-shadow:0 4px 8px #e74c3c4d}.btn-secondary{background:#3a3a3a;color:#e0e0e0;border:1px solid #4a4a4a}.btn-secondary:hover{background:#4a4a4a;border-color:#5a5a5a}.app-main{flex:1;display:grid;grid-template-columns:1fr 2fr;grid-template-rows:1fr;gap:1rem;padding:1rem;overflow:hidden;min-height:0}.left-panel{display:flex;flex-direction:column;gap:1rem;overflow:hidden;min-height:0}.top-section{display:grid;grid-template-columns:2fr 3fr;gap:1rem;flex-shrink:0}.viewer-section{display:flex;flex-direction:column;overflow:hidden;min-height:0;height:100%}.controls-panel{display:flex;flex-direction:column;gap:.75rem;flex-shrink:0}.sidebar-header{background:#2a2a2a;padding:1rem;border-radius:8px;border:1px solid #3a3a3a}.sidebar-header h1{font-size:1.3rem;color:#e0e0e0;margin:0;font-weight:600}.user-info{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #3a3a3a}.user-info .username{font-size:.8rem;color:#888}.btn-logout{background:transparent;border:1px solid #555;color:#999;padding:.25rem .6rem;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s}.btn-logout:hover{border-color:#ff6b6b;color:#ff6b6b}.sidebar-actions{display:flex;flex-direction:column;gap:.5rem}.sidebar-actions .btn-primary,.sidebar-actions .btn-secondary,.sidebar-actions .btn-danger{width:100%;justify-content:center;padding:.5rem 1rem;font-size:.9rem}.viewer-placeholder{background:#fff;border-radius:8px;padding:3rem;text-align:center;box-shadow:0 2px 8px #0000001a;min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#999}.viewer-placeholder h3{color:#667eea;margin-bottom:1rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#aaa}@media(max-width:767px){.app-main{grid-template-columns:1fr;grid-template-rows:1fr;padding:0 0 56px;gap:0}.app-main .left-panel,.app-main .viewer-section{display:none}.app-main[data-active-tab=viewer] .viewer-section,.app-main[data-active-tab=humidors] .left-panel{display:flex}.app-main[data-active-tab=humidors] .left-panel .box-inventory{display:none}.app-main[data-active-tab=inventory] .left-panel{display:flex}.app-main[data-active-tab=inventory] .left-panel .top-section{display:none}.top-section{grid-template-columns:1fr;gap:.5rem;padding:.5rem}.left-panel{padding:.5rem}.sidebar-header h1{font-size:1.1rem}.sidebar-actions{flex-direction:row;flex-wrap:wrap;gap:.35rem}.sidebar-actions .btn-primary,.sidebar-actions .btn-secondary,.sidebar-actions .btn-danger{width:auto;flex:1 1 auto;padding:.4rem .6rem;font-size:.8rem;min-width:0}}*{margin:0;padding:0;box-sizing:border-box}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}#root{width:100vw;height:100vh;overflow:hidden}
