*{box-sizing:border-box;margin:0;padding:0}body{color:#111827;-webkit-font-smoothing:antialiased;background:#f3f4f6;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.auth-container{background:linear-gradient(135deg,#10b981 0%,#059669 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:2rem;box-shadow:0 10px 30px #00000026}.brand{text-align:center;color:#059669;margin-bottom:.25rem;font-size:2rem}.auth-card h2{text-align:center;color:#6b7280;margin-bottom:1.5rem;font-size:1.1rem;font-weight:500}.auth-card form{flex-direction:column;gap:.5rem;display:flex}.auth-card label{margin-top:.5rem;font-size:.9rem;font-weight:500}.auth-card input{border:1px solid #d1d5db;border-radius:10px;outline:none;padding:.85rem 1rem;font-size:1rem;transition:border-color .15s}.auth-card input:focus{border-color:#10b981}.auth-card button{color:#fff;background:#10b981;border:none;border-radius:10px;padding:.95rem;font-size:1rem;font-weight:600;transition:background .15s}.auth-card button:hover:not(:disabled){background:#059669}.auth-card button:disabled{opacity:.6;cursor:not-allowed}.error{color:#dc2626;margin-top:.5rem;font-size:.9rem}.auth-link{text-align:center;color:#6b7280;margin-top:1.25rem;font-size:.9rem}.auth-link a{color:#059669;font-weight:600;text-decoration:none}.auth-link a:hover{text-decoration:underline}.loading-screen{color:#6b7280;justify-content:center;align-items:center;min-height:100vh;display:flex}.page{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:10;background:#fff;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000d}.brand-small{color:#059669;font-size:1.4rem;font-weight:700}.btn-logout{color:#dc2626;background:#fee2e2;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:600}.btn-logout:hover{background:#fecaca}.content{padding:1.5rem 1.25rem}.password-wrapper{width:100%;position:relative}.auth-card .password-wrapper input{width:100%;padding-right:3rem}.password-toggle{color:#9ca3af;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:color .15s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.password-toggle:hover{color:#4b5563;background:0 0}.password-toggle:focus{outline:none}.password-toggle svg{flex-shrink:0;width:20px;height:20px;display:block}@media (hover:none){.password-toggle:hover{color:#6b7280;background:0 0}.password-toggle:active{color:#059669;background:#f3f4f6}}@media (width<=480px){.auth-container{align-items:flex-start;padding:2rem .75rem .75rem}.auth-card{border-radius:14px;padding:1.5rem}.brand{font-size:1.75rem}.auth-card input,.password-wrapper input{font-size:1rem}.topbar{padding:.85rem 1rem}.brand-small{font-size:1.2rem}.btn-logout{padding:.45rem .85rem;font-size:.85rem}.content{padding:1rem}}@media (width<=360px){.password-wrapper input{padding-right:2.75rem}.password-toggle{width:2rem;height:2rem;right:.35rem}}html,body{max-width:100vw;overflow-x:hidden}.topbar-left{flex-direction:column;gap:.15rem;display:flex}.pharmacy-name{color:#6b7280;font-size:.8rem}.topbar-actions{align-items:center;gap:.5rem;display:flex}.btn-primary{color:#fff;background:#10b981;border:none;border-radius:10px;padding:.7rem 1.1rem;font-size:.95rem;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:#059669}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:.5rem .85rem;font-size:.85rem}.btn-secondary{color:#374151;background:#f3f4f6;border:none;border-radius:10px;padding:.7rem 1.1rem;font-size:.95rem;font-weight:600}.btn-secondary:hover{background:#e5e7eb}.btn-link{color:#059669;background:0 0;border:none;padding:.5rem 0;font-size:.9rem;font-weight:600}.btn-link:hover{text-decoration:underline}.search-wrapper{z-index:5;background:#fff;border-bottom:1px solid #e5e7eb;padding:.9rem 1.25rem;position:sticky;top:0}.search-bar{align-items:center;display:flex;position:relative}.search-icon{color:#9ca3af;pointer-events:none;width:18px;height:18px;position:absolute;left:.9rem}.search-bar input{background:#f9fafb;border:1px solid #d1d5db;border-radius:10px;outline:none;width:100%;padding:.75rem 2.5rem .75rem 2.6rem;font-size:1rem;transition:border-color .15s,background .15s}.search-bar input:focus{background:#fff;border-color:#10b981}.search-clear{color:#4b5563;background:#e5e7eb;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.1rem;line-height:1;display:flex;position:absolute;right:.5rem}.search-clear:hover{background:#d1d5db}.med-list{flex-direction:column;gap:.6rem;display:flex}.med-card{text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1rem;transition:border-color .15s,transform .1s;display:flex;box-shadow:0 1px 2px #00000008}.med-card:hover{border-color:#10b981}.med-card:active{transform:scale(.99)}.med-card-main{flex:1;min-width:0}.med-card-title{color:#111827;white-space:nowrap;text-overflow:ellipsis;margin-bottom:.2rem;font-size:1rem;font-weight:700;overflow:hidden}.med-card-subtitle{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.med-card-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.25rem;display:flex}.med-stock{font-size:1.35rem;font-weight:700;line-height:1}.med-stock.ok{color:#059669}.med-stock.soon{color:#d97706}.med-stock.expired,.med-stock.out{color:#dc2626}.med-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.med-badge.ok{color:#065f46;background:#d1fae5}.med-badge.soon{color:#92400e;background:#fef3c7}.med-badge.expired,.med-badge.out{color:#991b1b;background:#fee2e2}.empty-state{text-align:center;color:#6b7280;padding:3rem 1rem}.empty-title{color:#111827;margin-bottom:.35rem;font-size:1.1rem;font-weight:700}.empty-text{font-size:.95rem}.muted{color:#6b7280;font-size:.95rem}.empty-mini{color:#9ca3af;padding:.5rem 0;font-size:.9rem}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:flex-end;padding:0;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:92vh;animation:.2s ease-out slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{z-index:2;background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.25rem;display:flex;position:sticky;top:0}.modal-header h2{color:#111827;margin-bottom:.15rem;font-size:1.15rem;font-weight:700}.modal-subtitle{color:#6b7280;font-size:.85rem}.modal-close{color:#6b7280;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.8rem;line-height:1;display:flex}.modal-close:hover{color:#111827;background:#f3f4f6}.modal-body{padding:0 1.25rem 1.5rem}.modal-section{border-bottom:1px solid #f3f4f6;padding:1.1rem 0}.modal-section:last-child{border-bottom:none}.section-title{text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin-bottom:.75rem;font-size:.8rem;font-weight:700}.info-grid{grid-template-columns:1fr 1fr;gap:.6rem 1rem;display:grid}.info-grid dt{color:#6b7280;grid-column:1/-1;margin-bottom:-.35rem;font-size:.78rem}.info-grid dd{color:#111827;grid-column:1/-1;margin-bottom:.35rem;font-size:.95rem;font-weight:500}.batch-list{flex-direction:column;gap:.5rem;margin-bottom:.75rem;list-style:none;display:flex}.batch-item{background:#f9fafb;border-left:4px solid #10b981;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex}.batch-item.soon{background:#fffbeb;border-left-color:#f59e0b}.batch-item.expired{background:#fef2f2;border-left-color:#dc2626}.batch-info{flex-direction:column;gap:.15rem;min-width:0;display:flex}.batch-info strong{color:#111827;font-size:.9rem}.batch-meta{color:#6b7280;font-size:.78rem}.batch-qty{flex-direction:column;align-items:flex-end;gap:.15rem;display:flex}.stock-pill{color:#065f46;background:#d1fae5;border-radius:999px;padding:.15rem .6rem;font-size:1rem;font-weight:700}.stock-pill.soon{color:#92400e;background:#fef3c7}.stock-pill.expired{color:#991b1b;background:#fee2e2}.batch-price{color:#6b7280;font-size:.75rem}.sale-form{flex-direction:column;gap:.65rem;display:flex}.sale-label{color:#374151;font-size:.9rem;font-weight:500}.sale-input{text-align:center;border:1px solid #d1d5db;border-radius:10px;outline:none;padding:.9rem 1rem;font-size:1.1rem;font-weight:600;transition:border-color .15s}.sale-input:focus{border-color:#10b981}.btn-sale{border-radius:12px;padding:1rem;font-size:1.05rem}.inline-form,.modal-body form{flex-direction:column;gap:.75rem;display:flex}.form-group{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.form-group label{color:#374151;font-size:.82rem;font-weight:600}.form-group input,.form-group select{background:#fff;border:1px solid #d1d5db;border-radius:9px;outline:none;width:100%;padding:.7rem .85rem;font-size:.95rem;transition:border-color .15s}.form-group input:focus,.form-group select:focus{border-color:#10b981}.form-row{gap:.7rem;display:flex}.form-row .form-group{min-width:0}.form-actions{justify-content:flex-end;gap:.6rem;margin-top:.5rem;display:flex}.checkbox-label{color:#374151;cursor:pointer;align-items:center;gap:.5rem;margin-top:.4rem;font-size:.9rem;display:flex}.checkbox-label input{width:auto}@media (width>=640px){.modal-overlay{align-items:center;padding:1rem}.modal-content{border-radius:16px;max-height:88vh}}@media (width<=480px){.search-wrapper{padding:.75rem 1rem}.content{padding:1rem}.med-card{padding:.9rem}.med-stock{font-size:1.2rem}.modal-body{padding:0 1rem 1.25rem}.info-grid{grid-template-columns:1fr}.form-row{flex-direction:column}.brand-small{font-size:1.15rem}.btn-primary,.btn-secondary,.btn-logout{padding:.55rem .85rem;font-size:.85rem}.pharmacy-name{font-size:.72rem}}.modal-actions-inline{flex-wrap:wrap;gap:1rem;margin-top:.5rem;display:flex}.adjust-form{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:.75rem;margin-top:.75rem;padding:1rem;display:flex}.adjust-form .form-group{flex-direction:column;gap:.35rem;display:flex}.adjust-form label{color:#374151;font-size:.82rem;font-weight:600}.adjust-form .hint{color:#9ca3af;font-size:.78rem;font-weight:400}.adjust-form select,.adjust-form input{background:#fff;border:1px solid #d1d5db;border-radius:9px;outline:none;width:100%;padding:.7rem .85rem;font-size:.95rem;transition:border-color .15s}.adjust-form select:focus,.adjust-form input:focus{border-color:#10b981}.adjust-preview{color:#374151;background:#ecfdf5;border-left:3px solid #10b981;border-radius:8px;padding:.5rem .75rem;font-size:.9rem}.adjust-preview strong{color:#059669}.confirm-overlay{align-items:center;padding:1rem}.confirm-dialog{background:#fff;border-radius:16px;width:100%;max-width:380px;padding:1.5rem;animation:.15s ease-out slideUp;box-shadow:0 10px 30px #0003}.confirm-title{color:#111827;margin-bottom:.5rem;font-size:1.1rem;font-weight:700}.confirm-message{color:#6b7280;margin-bottom:1.25rem;font-size:.95rem;line-height:1.4}.confirm-actions{justify-content:flex-end;gap:.6rem;display:flex}.btn-danger{background:#dc2626!important}.btn-danger:hover:not(:disabled){background:#b91c1c!important}.sale-actions{gap:.6rem;display:flex}.sale-actions .btn-secondary,.sale-actions .btn-primary{border-radius:12px;flex:1;padding:1rem;font-size:1rem}.btn-add-cart{color:#075985;background:#e0f2fe}.btn-add-cart:hover:not(:disabled){background:#bae6fd}.cart-fab{color:#fff;z-index:90;background:#059669;border:none;border-radius:999px;align-items:center;gap:.6rem;padding:.85rem 1.25rem;font-size:1rem;font-weight:700;transition:transform .15s,background .15s;display:flex;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 8px 20px #05966959}.cart-fab:hover{background:#047857}.cart-fab:active{transform:scale(.96)}.cart-fab-label{font-size:.95rem}.cart-fab-badge{color:#059669;text-align:center;background:#fff;border-radius:999px;min-width:1.6rem;padding:.1rem .55rem;font-size:.9rem;font-weight:800}.cart-content{max-height:90vh}.cart-list{flex-direction:column;gap:.6rem;margin-bottom:1rem;list-style:none;display:flex}.cart-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem;display:flex}.cart-item-info{flex-direction:column;flex:1;min-width:0;display:flex}.cart-item-info strong{color:#111827;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.cart-item-meta{color:#6b7280;font-size:.8rem}.cart-item-controls{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.cart-qty-input{text-align:center;border:1px solid #d1d5db;border-radius:8px;outline:none;width:60px;padding:.45rem .5rem;font-size:.95rem;font-weight:600}.cart-qty-input:focus{border-color:#10b981}.cart-remove{color:#dc2626;background:#fee2e2;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.1rem;line-height:1;display:flex}.cart-remove:hover{background:#fecaca}.cart-summary{color:#065f46;background:#ecfdf5;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.9rem 1rem;font-size:1rem;display:flex}.cart-summary strong{font-size:1.15rem}@media (width<=480px){.sale-actions{flex-direction:column}.cart-fab{padding:.75rem 1.1rem;bottom:1rem;right:1rem}}.toaster{z-index:999;pointer-events:none;flex-direction:column;gap:.5rem;width:calc(100% - 2rem);max-width:380px;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.toast{color:#111827;pointer-events:auto;background:#fff;border-radius:12px;align-items:center;gap:.6rem;padding:.85rem 1rem;font-size:.95rem;font-weight:500;animation:.2s ease-out toastIn;display:flex;box-shadow:0 8px 20px #0000001f}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.toast-icon{flex-shrink:0;width:20px;height:20px;display:flex}.toast-icon svg{width:100%;height:100%}.toast-success{border-left:4px solid #10b981}.toast-success .toast-icon{color:#10b981}.toast-error{border-left:4px solid #dc2626}.toast-error .toast-icon{color:#dc2626}.toast-info{border-left:4px solid #3b82f6}.toast-info .toast-icon{color:#3b82f6}.back-link{color:#059669;font-size:.85rem;font-weight:600;text-decoration:none}.back-link:hover{text-decoration:underline}.filters-wrapper{z-index:5;background:#fff;border-bottom:1px solid #e5e7eb;flex-direction:column;gap:.7rem;padding:.9rem 1.25rem;display:flex;position:sticky;top:0}.range-tabs{gap:.4rem;display:flex;overflow-x:auto}.range-tab{color:#374151;background:#f3f4f6;border:none;border-radius:999px;flex-shrink:0;padding:.45rem .9rem;font-size:.85rem;font-weight:600;transition:background .15s,color .15s}.range-tab:hover{background:#e5e7eb}.range-tab.active{color:#fff;background:#10b981}.history-summary{grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.25rem;display:grid}.summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:.2rem;padding:.9rem 1rem;display:flex}.summary-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.summary-value{color:#059669;font-size:1.35rem;font-weight:800}.history-day{margin-bottom:1.25rem}.history-day-header{justify-content:space-between;align-items:center;margin-bottom:.4rem;padding:.5rem .25rem;display:flex}.history-day-label{color:#374151;text-transform:capitalize;font-size:.85rem;font-weight:700}.history-day-total{color:#059669;font-size:.9rem;font-weight:700}.sale-list{flex-direction:column;gap:.4rem;list-style:none;display:flex}.sale-row{background:#fff;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex}.sale-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.sale-row-main strong{color:#111827;white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;overflow:hidden}.sale-row-meta{color:#6b7280;margin-top:.15rem;font-size:.78rem}.sale-row-total{color:#059669;flex-shrink:0;font-size:.95rem;font-weight:700}@media (width<=480px){.filters-wrapper{padding:.75rem 1rem}.summary-value{font-size:1.15rem}}
