.pignus-app{min-height:100vh;display:flex;flex-direction:column}.pignus-app .header{position:sticky;top:0;z-index:50}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:stretch;background:var(--card);border-top:1px solid var(--border);z-index:100;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-1);color:var(--ink-3);text-decoration:none}.bottom-nav__item--active{color:var(--blue)}.bottom-nav__icon{font-size:var(--text-lg);line-height:1}.bottom-nav__label{font-size:var(--text-xs);font-weight:var(--weight-semi)}.main{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:200;display:flex;align-items:flex-end}.scanner-modal{width:100%;background:var(--card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}.scanner-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-4) var(--space-2)}.scanner-title{font-weight:var(--weight-semi);font-size:var(--text-base)}.scanner-viewport{position:relative;width:100%;aspect-ratio:4/3;background:#000;overflow:hidden}.scanner-video{width:100%;height:100%;object-fit:cover}.scanner-reticle{position:absolute;top:20%;right:20%;bottom:20%;left:20%;border:2px solid var(--blue);border-radius:var(--radius-sm);pointer-events:none}.scanner-error{position:absolute;bottom:var(--space-3);left:50%;transform:translate(-50%);background:var(--err);color:#fff;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-sm);white-space:nowrap}.scanner-manual{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.scanner-manual input{flex:1}.flow-page{padding:var(--space-4)}.flow-confirm{display:flex;flex-direction:column;gap:var(--space-4);padding-top:var(--space-4)}.flow-family-name{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--ink)}.flow-stock-hint{font-size:var(--text-sm);color:var(--ink-2)}.flow-qty-label{font-size:var(--text-sm);font-weight:var(--weight-semi);color:var(--ink-2)}.flow-actions{display:flex;gap:var(--space-3);padding-top:var(--space-2)}.flow-toast{position:fixed;top:calc(56px + var(--space-3));left:var(--space-4);right:var(--space-4);transform:none;background:var(--ink);color:var(--cream);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-sm);z-index:300;white-space:pre-wrap;word-break:break-all}.flow-error{color:var(--err);font-size:var(--text-sm)}.dashboard-section{margin-top:var(--space-6)}.dashboard-section__title{font-size:var(--text-sm);font-weight:var(--weight-semi);color:var(--ink-2);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-3)}.main-loading,.main-error{display:flex;align-items:center;justify-content:center;padding:var(--space-16);color:var(--ink-3)}.family-filters{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.family-filter-pills{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.filter-divider{width:1px;height:20px;background:var(--border);margin:0 var(--space-1)}.family-name{font-weight:var(--weight-semi);font-size:var(--text-sm)}.family-color{font-size:var(--text-xs);color:var(--ink-3)}.row--low-stock td:first-child{border-left:3px solid var(--gold)}.editable-cell{cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);border:1px dashed transparent}.editable-cell:hover{border-color:var(--border-mid);background:var(--cream-hover)}.inline-edit{width:60px;padding:var(--space-1);font-size:var(--text-sm)}.empty-state{text-align:center;color:var(--ink-3);padding:var(--space-10) 0;font-size:var(--text-sm)}.link-btn{background:none;border:none;color:var(--blue);cursor:pointer;padding:0;font-size:inherit;text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;display:flex;align-items:flex-end}.modal{width:100%;background:var(--card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-4);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom));max-height:80vh;overflow-y:auto}.modal--tall{max-height:90vh}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.modal-title{font-weight:var(--weight-semi);font-size:var(--text-base)}.modal-family{font-weight:var(--weight-semi);margin-bottom:var(--space-1)}.modal-stock{font-size:var(--text-sm);color:var(--ink-2);margin-bottom:var(--space-4)}.modal-form{display:flex;flex-direction:column;gap:var(--space-4)}.modal-code{font-size:var(--text-lg);font-weight:var(--weight-semi);margin-bottom:var(--space-1)}.modal-hint{font-size:var(--text-sm);color:var(--ink-2);margin-bottom:var(--space-4)}.barcode-reg-list{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-3) 0;max-height:40vh;overflow-y:auto}.barcode-reg-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--cream-hover);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%}.barcode-reg-item:hover{background:var(--cream);border-color:var(--blue)}.barcode-reg-name{font-size:var(--text-sm);font-weight:var(--weight-semi)}.family-form{display:flex;flex-direction:column;gap:var(--space-4);padding-top:var(--space-4)}.family-form__field{display:flex;flex-direction:column;gap:var(--space-1)}.family-form__field label{font-size:var(--text-sm);font-weight:var(--weight-semi);color:var(--ink-2)}.family-form__field textarea{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);font-size:var(--text-sm);resize:none;font-family:var(--font-sans)}.family-form__field select{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);font-size:var(--text-sm);font-family:var(--font-sans)}.barcode-hint{background:var(--cream-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--text-sm);color:var(--ink-2);margin-bottom:var(--space-4)}.detail-header{padding:var(--space-4) 0 var(--space-2)}.detail-title{font-size:var(--text-xl);font-weight:var(--weight-bold)}.detail-subtitle{font-size:var(--text-base);color:var(--ink-2)}.detail-color-tag{font-size:var(--text-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.detail-meta{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:var(--space-4) 0}.detail-meta__row{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--ink-2)}.low-stock-banner{padding:var(--space-3);background:color-mix(in srgb,var(--gold) 15%,var(--card));border-radius:var(--radius-sm);margin-bottom:var(--space-4);font-size:var(--text-sm)}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-6) 0}.pagination-info{font-size:var(--text-sm);color:var(--ink-2)}
