*{box-sizing:border-box}html,body,#app{min-height:100%}body{font-family:Inter,ui-sans-serif,system-ui,sans-serif;overflow-x:hidden}.app-shell{min-height:100vh}.main-content{min-width:0;overflow-x:hidden}.sidebar{transition:width .2s ease,transform .2s ease}.sidebar.collapsed{width:5rem}.sidebar.collapsed .nav-label,.sidebar.collapsed .brand-copy,.sidebar.collapsed .sidebar-meta{display:none}.sidebar.collapsed .nav-link{justify-content:center}.main-panel{transition:margin-left .2s ease}.nav-link.active{background:#1d4ed8;color:#fff}.nav-link:not(.active):hover{background:#102443;color:#fff}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0}.data-table th{background:#f8fafc;color:#64748b;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;white-space:nowrap}.data-table th,.data-table td{padding:.78rem 1rem;border-bottom:1px solid #e2e8f0;text-align:left}.data-table td{font-size:.83rem;vertical-align:middle}.data-table tbody tr:hover{background:#f8fafc}.field{width:100%;border:1px solid #cbd5e1;border-radius:.6rem;padding:.65rem .8rem;background:#fff;font-size:.875rem;outline:none;transition:.15s}.field:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.field-label{display:block;color:#475569;font-size:.75rem;font-weight:600;margin-bottom:.35rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border-radius:.6rem;padding:.62rem .9rem;font-size:.82rem;font-weight:600;transition:.15s;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{background:#fff;color:#334155;border:1px solid #cbd5e1}.btn-secondary:hover:not(:disabled){background:#f8fafc}.btn-danger{background:#dc2626;color:#fff}.btn-success{background:#059669;color:#fff}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.55rem}.card{background:#fff;border:1px solid #e2e8f0;border-radius:.85rem;box-shadow:0 4px 18px rgba(15,23,42,.035)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .55rem;font-size:.68rem;font-weight:700;white-space:nowrap}.badge-green{background:#ecfdf5;color:#047857}.badge-amber{background:#fffbeb;color:#b45309}.badge-red{background:#fef2f2;color:#b91c1c}.badge-blue{background:#eff6ff;color:#1d4ed8}.badge-slate{background:#f1f5f9;color:#475569}.kpi-card{position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;right:-20px;bottom:-22px;width:76px;height:76px;border-radius:50%;background:var(--tint,#eff6ff)}.modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.62);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:80}.modal-card{width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:1rem;box-shadow:0 25px 80px rgba(0,0,0,.25)}.toast{min-width:280px;max-width:380px;background:#fff;border:1px solid #e2e8f0;border-left:4px solid #2563eb;border-radius:.65rem;box-shadow:0 16px 45px rgba(15,23,42,.18);padding:.8rem 1rem;animation:toast-in .2s ease}.toast.success{border-left-color:#059669}.toast.error{border-left-color:#dc2626}.toast.warning{border-left-color:#d97706}@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:.55rem;top:.7rem;bottom:.7rem;width:2px;background:#e2e8f0}.timeline-item{position:relative;padding-left:2rem}.timeline-dot{position:absolute;left:.25rem;top:.35rem;width:.65rem;height:.65rem;background:#2563eb;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #bfdbfe}.pos-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(330px,.8fr);gap:1rem}.print-only{display:none}@media(max-width:1023px){.sidebar{transform:translateX(-100%);position:fixed!important;z-index:60}.sidebar.mobile-open{transform:translateX(0)}.pos-grid{grid-template-columns:1fr}}@media(max-width:640px){.data-table th,.data-table td{padding:.65rem .75rem}.modal-backdrop{padding:0}.modal-card{height:100vh;max-height:100vh;border-radius:0}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hide-mobile{display:none!important}}@media print{.no-print,.sidebar,header{display:none!important}.print-only{display:block}.main-content{padding:0!important}.card{box-shadow:none}.app-shell{display:block!important}body{background:#fff}}
