:root{--color-primary:#007bff;--color-success:#28a745;--color-danger:#dc3545;--color-warning:#ffc107;--color-info:#17a2b8;--color-muted:#6c757d;--color-border:#ddd;--radius-sm:4px;--radius-md:8px}.app-toast{z-index:3000;border-radius:var(--radius-md);color:#fff;text-align:center;max-width:92vw;padding:12px 20px;font-size:13px;font-weight:700;animation:.2s ease-out appToastIn;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0003}.app-toast.success{background:var(--color-success)}.app-toast.error{background:var(--color-danger)}@keyframes appToastIn{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}.btn-touch-sm{border-radius:var(--radius-sm);cursor:pointer;min-height:40px;padding:10px 16px;font-size:13px;font-weight:700}.form-grid-2{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.form-grid-4{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.data-card{border-radius:var(--radius-md);border:1px solid var(--color-border);background:#fff;margin-bottom:10px;padding:14px}.dc-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.dc-title{font-size:14px;font-weight:700}.dc-sub{color:var(--color-muted);font-size:11px}.dc-field{color:#333;margin-bottom:6px;font-size:13px}.dc-actions{gap:8px;margin-top:10px;display:flex}.nav-bar{-webkit-overflow-scrolling:touch;border-bottom:2px solid #dee2e6;gap:5px;margin-bottom:20px;display:flex;overflow-x:auto}.nav-item{color:#6c757d;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:8px;padding:10px 15px;font-size:14px;font-weight:700;transition:all .2s;display:flex}.nav-item:hover{color:#495057;background:#f8f9fa}.nav-item.active{color:#007bff;border-bottom-color:#007bff}.data-table-wrap{display:block}.data-card-list{display:none}@media (width<=720px){.data-table-wrap{display:none}.data-card-list{display:block}.app-shell{padding-bottom:80px}.nav-bar{z-index:1000;background:#fff;border-top:1px solid #ddd;border-bottom:none;justify-content:flex-start;margin:0;padding:5px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 10px #0000000d}.nav-item{border:none;border-radius:8px;flex-direction:column;gap:4px;min-width:72px;padding:8px 4px;font-size:10px}.nav-item.active{color:#0056b3;background:#e3f2fd;border:none}.nav-icon{font-size:20px}}
