:root{--blue-950: #071629;--blue-900: #0d2137;--blue-800: #143354;--blue-700: #1a4570;--blue-600: #1d5a96;--blue-500: #1565c0;--blue-400: #1976d2;--blue-300: #42a5f5;--blue-100: #bbdefb;--blue-50: #e3f2fd;--yellow: #f5a623;--yellow-dark: #d4891a;--yellow-light: #fff8e8;--yellow-mid: #ffc947;--red: #c0392b;--red-dark: #96281b;--red-light: #fde8e7;--green: #27ae60;--green-light: #e8f5e9;--white: #ffffff;--black: #111827;--gray-50: #f7f9fc;--gray-100: #eef1f6;--gray-200: #dde3ec;--gray-300: #c4cdd9;--gray-400: #8e9cb0;--gray-500: #5d6d7e;--gray-700: #2c3e50;--sidebar-width: 218px;--header-height: 52px;--toolbar-height: 44px;--shadow-xs: 0 1px 2px rgba(0,0,0,.1);--shadow-sm: 0 1px 4px rgba(0,0,0,.12);--shadow: 0 2px 8px rgba(0,0,0,.12);--shadow-lg: 0 8px 24px rgba(0,0,0,.15);--radius-xs: 2px;--radius: 4px;--radius-md: 6px;--radius-lg: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gray-50);color:var(--black);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-content{flex:1;overflow-y:auto;background:var(--gray-50);padding-bottom:env(safe-area-inset-bottom,0px)}.topbar{background:#fff;border-bottom:1px solid var(--gray-200);height:calc(44px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-left:max(16px,env(safe-area-inset-left,16px));padding-right:max(16px,env(safe-area-inset-right,16px));padding-bottom:0;display:flex;align-items:center;gap:10px;flex-shrink:0;box-shadow:0 1px 3px #0000000f}.topbar-logo{display:flex;align-items:center;gap:8px}.topbar-logo-icon{font-size:22px}.topbar-logo-text{font-size:15px;font-weight:800;color:var(--blue-700);letter-spacing:-.02em}.topbar-logo-sub{font-size:9px;color:var(--gray-400);font-weight:500;letter-spacing:.08em;text-transform:uppercase}.topbar-sep{width:1px;height:22px;background:var(--gray-200);margin:0 6px}.topbar-company{flex:1;font-size:11.5px;font-weight:700;color:var(--blue-600)}.topbar-user-menu{position:relative}.topbar-user-info{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--gray-700);font-weight:600;background:none;border:none;padding:4px 6px;border-radius:var(--radius-md);font-family:inherit;cursor:default}.topbar-user-info.clickable{cursor:pointer;transition:background .12s}.topbar-user-info.clickable:hover{background:var(--gray-100)}.topbar-avatar{width:28px;height:28px;border-radius:50%;background:var(--blue-600);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0}.topbar-avatar.admin-av{background:var(--yellow);color:var(--black)}.topbar-user-menu-arrow{font-size:9px;color:var(--gray-400);transition:transform .15s}.topbar-user-menu-arrow.open{transform:rotate(180deg)}.topbar-user-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border-radius:var(--radius-md);box-shadow:0 10px 32px #0000002e;border-top:3px solid var(--yellow);min-width:220px;z-index:400;padding:6px;animation:mmFade .12s ease}.topbar-user-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:12.5px;font-weight:600;color:var(--gray-700);background:none;border:none;border-radius:var(--radius-xs);cursor:pointer;font-family:inherit;text-align:left;transition:background .1s,color .1s}.topbar-user-dropdown-item:hover{background:var(--blue-50);color:var(--blue-700)}.topbar-logout{background:none;border:none;cursor:pointer;color:var(--gray-400);font-size:17px;padding:4px 6px;border-radius:var(--radius);transition:all .15s;font-family:inherit;line-height:1}.topbar-logout:hover{color:var(--red);background:var(--red-light)}.topbar-refresh-btn{background:none;border:none;cursor:pointer;color:var(--gray-400);font-size:17px;padding:4px 6px;border-radius:var(--radius);transition:all .15s;font-family:inherit;line-height:1;display:inline-block}.topbar-refresh-btn:hover{color:var(--blue-600);background:var(--blue-50)}.topbar-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.topbar-refresh-btn.spinning{animation:spin .8s linear infinite}.topbar-touch-link{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--blue-600);background:var(--blue-50);border:1px solid var(--blue-100);padding:5px 10px;border-radius:var(--radius-md);text-decoration:none;white-space:nowrap;transition:all .15s;font-family:inherit;cursor:pointer}.topbar-touch-link:hover{background:var(--blue-100);color:var(--blue-700)}.topnav-wrapper{background:var(--blue-700);flex-shrink:0;position:relative;z-index:200}.topnav{display:flex;align-items:stretch;padding:0 8px}.topnav-item{display:flex;align-items:center;gap:5px;padding:0 13px;height:38px;font-size:11.5px;font-weight:700;color:#ffffffb8;background:none;border:none;cursor:pointer;font-family:inherit;letter-spacing:.05em;text-transform:uppercase;border-bottom:3px solid transparent;transition:color .12s,border-color .12s,background .12s;white-space:nowrap}.topnav-item:hover{color:#fff;background:#ffffff14}.topnav-item.active{color:var(--yellow);border-bottom-color:var(--yellow)}.topnav-item.open{color:#fff;background:#ffffff1a;border-bottom-color:#ffffff4d}.topnav-item-arrow{font-size:7px;opacity:.5;margin-top:1px}.topnav-dashboard{border-right:1px solid rgba(255,255,255,.1)}.topnav-spacer{flex:1}.megamenu-overlay{position:absolute;top:100%;left:0;right:0;background:#fff;border-top:3px solid var(--yellow);box-shadow:0 10px 32px #0000002e;z-index:400;animation:mmFade .12s ease}@keyframes mmFade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.megamenu-inner{display:flex;gap:0;padding:18px 20px;max-height:74vh;overflow-y:auto}.megamenu-col{flex:1;min-width:170px;max-width:250px;padding:0 20px 0 0;border-right:1px solid var(--gray-100)}.megamenu-col:last-child{border-right:none}.megamenu-col-title{font-size:10px;font-weight:800;color:var(--blue-700);text-transform:uppercase;letter-spacing:.1em;padding-bottom:6px;margin-bottom:5px;margin-left:2px;border-bottom:1px solid var(--gray-200)}.megamenu-link{display:flex;align-items:center;gap:8px;padding:4px 6px;margin-bottom:1px;font-size:12.5px;color:var(--gray-700);cursor:pointer;border-radius:var(--radius-xs);border:none;background:none;width:100%;text-align:left;font-family:inherit;transition:background .1s,color .1s}.megamenu-link:hover:not(.mm-disabled){background:var(--blue-50);color:var(--blue-700)}.megamenu-link.mm-active{color:var(--blue-700);font-weight:700;background:var(--blue-50)}.megamenu-link.mm-disabled{color:var(--gray-400);cursor:default;font-style:italic}.megamenu-link.mm-highlight{color:var(--blue-600);font-weight:700}.megamenu-link.mm-highlight .mm-dot{background:var(--blue-500)}.megamenu-link.mm-highlight:hover{background:var(--blue-50);color:var(--blue-800)}.megamenu-col-title.mm-col-admin{color:var(--yellow-dark);border-bottom-color:var(--yellow)}.mm-dot{width:5px;height:5px;border-radius:50%;background:var(--gray-300);flex-shrink:0}.megamenu-link:hover:not(.mm-disabled) .mm-dot{background:var(--blue-500)}.megamenu-link.mm-active .mm-dot{background:var(--blue-500)}.breadcrumb-bar{height:30px;background:var(--blue-900);display:flex;align-items:flex-end;padding:0 12px;gap:2px;font-size:11px;color:#ffffff8c;flex-shrink:0;overflow-x:auto;overflow-y:hidden}.breadcrumb-bar::-webkit-scrollbar{height:2px}.breadcrumb-bar::-webkit-scrollbar-thumb{background:#fff3}.bc-tab{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 12px;font-size:10.5px;font-weight:600;letter-spacing:.04em;border-radius:4px 4px 0 0;background:#ffffff12;color:#ffffff8c;cursor:pointer;white-space:nowrap;border:1px solid rgba(255,255,255,.08);border-bottom:none;transition:background .12s,color .12s;-webkit-user-select:none;user-select:none;flex-shrink:0}.bc-tab:hover{background:#ffffff1f;color:#fffc}.bc-tab.bc-tab-active{background:var(--blue-700);color:#fff;border-color:#ffffff26;border-top:2px solid var(--yellow)}.bc-tab-dot{width:5px;height:5px;background:var(--yellow);border-radius:50%;flex-shrink:0}.bc-tab-label{flex:1}.bc-tab-close{background:none;border:none;cursor:pointer;color:#ffffff59;font-size:13px;line-height:1;padding:0 0 0 2px;border-radius:2px;transition:color .1s,background .1s;font-family:inherit}.bc-tab-close:hover{color:#fff;background:#c0392b80}.sidebar{width:var(--sidebar-width);background:var(--blue-900);color:#fff;display:flex;flex-direction:column;height:100vh;position:fixed;left:0;top:0;z-index:100;overflow-y:auto;overflow-x:hidden;flex-shrink:0;border-right:1px solid var(--blue-950)}.sidebar-logo{height:52px;display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--blue-950);border-bottom:2px solid var(--yellow);flex-shrink:0}.sidebar-logo-icon{width:30px;height:30px;background:var(--yellow);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.sidebar-logo-text{font-size:13px;font-weight:700;color:#fff;line-height:1.2;letter-spacing:.01em}.sidebar-logo-sub{font-size:9px;color:var(--yellow);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.sidebar-nav{flex:1;padding:6px 0;overflow-y:auto;overflow-x:hidden}.sidebar-section-label{padding:10px 14px 3px;font-size:9px;font-weight:700;color:#ffffff47;text-transform:uppercase;letter-spacing:.12em}.sidebar-divider{height:1px;background:#ffffff12;margin:4px 0}.sidebar-item{display:flex;align-items:center;gap:9px;padding:8px 14px;cursor:pointer;color:#ffffff9e;font-size:12.5px;font-weight:500;border:none;background:none;width:100%;text-align:left;font-family:inherit;position:relative;transition:background .12s,color .12s;border-left:3px solid transparent}.sidebar-item:hover{background:#ffffff0f;color:#ffffffe0}.sidebar-item.active{background:#f5a6231f;color:var(--yellow);border-left-color:var(--yellow);font-weight:600}.sidebar-item-icon{font-size:14px;width:18px;text-align:center;flex-shrink:0}.sidebar-item-label{flex:1}.sidebar-item-badge{background:var(--yellow);color:var(--black);font-size:9px;font-weight:800;padding:1px 5px;border-radius:3px}.sidebar-item-arrow{font-size:9px;color:#ffffff4d;transition:transform .2s;flex-shrink:0}.sidebar-item-arrow.open{transform:rotate(90deg);color:var(--yellow)}.sidebar-submenu{overflow:hidden;transition:max-height .25s ease;background:#00000026}.sidebar-submenu .sidebar-item{padding:6px 14px 6px 36px;font-size:12px;color:#ffffff80;border-left:3px solid transparent}.sidebar-submenu .sidebar-item:hover{color:#fffc;background:#ffffff0d}.sidebar-submenu .sidebar-item.active{color:var(--yellow);border-left-color:var(--yellow);background:#f5a62314}.sidebar-submenu .sidebar-item.disabled{opacity:.32;cursor:default;pointer-events:none;font-style:italic}.sidebar-badge-breve{font-size:8px;font-weight:700;background:#ffffff1a;color:#ffffff59;padding:1px 4px;border-radius:3px;letter-spacing:.05em}.sidebar-footer{padding:10px 14px;border-top:1px solid rgba(255,255,255,.08);background:var(--blue-950);flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:9px}.sidebar-avatar{width:30px;height:30px;background:var(--yellow);color:var(--black);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:12px;font-weight:600;color:#ffffffe0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:10px;color:#ffffff61}.sidebar-logout-btn{background:none;border:none;color:#ffffff4d;cursor:pointer;padding:5px;border-radius:var(--radius);display:flex;align-items:center;font-size:14px;transition:color .15s,background .15s}.sidebar-logout-btn:hover{color:var(--red);background:#c0392b26}.header{height:var(--header-height);background:var(--blue-600);display:flex;align-items:center;padding:0 20px;gap:12px;position:sticky;top:0;z-index:50;box-shadow:0 2px 6px #00000040;flex-shrink:0}.header-breadcrumb{display:flex;align-items:center;gap:6px;font-size:12.5px;flex:1}.bc-sep{color:#ffffff59}.bc-parent{color:#fff9}.bc-current{color:#fff;font-weight:600}.header-right{display:flex;align-items:center;gap:10px}.header-date{font-size:11px;color:#ffffffa6;padding:4px 10px;background:#0000002e;border-radius:var(--radius);border:1px solid rgba(255,255,255,.12)}.module-toolbar{display:flex;align-items:center;gap:2px;padding:6px 20px;background:var(--gray-100);border-bottom:1px solid var(--gray-200);flex-wrap:wrap;min-height:var(--toolbar-height)}.toolbar-sep{width:1px;height:28px;background:var(--gray-300);margin:0 6px}.tbtn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;font-size:12px;font-weight:600;font-family:inherit;transition:all .12s;white-space:nowrap;line-height:1}.tbtn:disabled{opacity:.45;cursor:not-allowed}.tbtn-icon{font-size:13px;line-height:1}.tbtn-yellow{background:var(--yellow);color:var(--black);border-color:var(--yellow-dark)}.tbtn-yellow:hover:not(:disabled){background:var(--yellow-mid)}.tbtn-blue{background:var(--blue-500);color:#fff;border-color:var(--blue-700)}.tbtn-blue:hover:not(:disabled){background:var(--blue-600)}.tbtn-red{background:var(--red);color:#fff;border-color:var(--red-dark)}.tbtn-red:hover:not(:disabled){background:var(--red-dark)}.tbtn-ghost{background:#fff;color:var(--gray-700);border-color:var(--gray-300)}.tbtn-ghost:hover:not(:disabled){background:var(--gray-100)}.tbtn-green{background:var(--green);color:#fff;border-color:#1e8449}.tbtn-green:hover:not(:disabled){background:#1e8449}.page-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#fff;border-bottom:1px solid var(--gray-200);gap:12px}.page-title{font-size:16px;font-weight:700;color:var(--blue-800)}.page-subtitle{font-size:11px;color:var(--gray-500);margin-top:1px}.page-body{padding:16px 20px}.card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.card-header{padding:9px 14px;background:var(--blue-700);color:#fff;border-radius:var(--radius-md) var(--radius-md) 0 0;display:flex;align-items:center;justify-content:space-between;gap:10px}.card-header-title{font-size:12px;font-weight:600;color:#fff}.card-body{padding:16px 14px}.card-body-sm{padding:10px 14px}.table-container{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table thead th{padding:8px 12px;text-align:left;font-size:11px;font-weight:700;color:#fff;background:var(--blue-700);border-right:1px solid var(--blue-600);white-space:nowrap;letter-spacing:.03em;text-transform:uppercase}.table thead th:last-child{border-right:none}.table-filter-row th{background:var(--blue-600);padding:4px 6px;border-right:1px solid var(--blue-500)}.table-filter-input{width:100%;padding:4px 6px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:11.5px;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--black);background:#fff;font-family:inherit}.table-filter-input:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 2px #1565c026}.col-resize{position:absolute;top:0;right:0;bottom:0;width:7px;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.col-resize:hover,.col-resize:active{background:#ffffff73}.table tbody td{padding:7px 12px;border-bottom:1px solid var(--gray-200);font-size:12.5px;color:var(--black);border-right:1px solid var(--gray-100)}.table tbody td:last-child{border-right:none}.table tbody tr:nth-child(2n) td{background:var(--gray-50)}.table tbody tr:hover td{background:var(--blue-50)!important}.table tbody tr:last-child td{border-bottom:none}.table-actions{display:flex;gap:3px}.table-empty{text-align:center;padding:40px 20px;color:var(--gray-400)}.table-empty-icon{font-size:36px;margin-bottom:8px}.table-empty-text{font-size:13px;font-weight:500;color:var(--gray-500)}.table-empty-sub{font-size:11px;margin-top:3px;color:var(--gray-400)}.pagination-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--gray-200);flex-wrap:wrap;gap:10px}.pagination-info{font-size:11.5px;color:var(--gray-500)}.pagination-controls{display:flex;align-items:center;gap:6px}.pagination-page{font-size:11.5px;color:var(--gray-600);font-weight:600;padding:0 4px}.pagination-btn{padding:5px 10px;border:1px solid var(--gray-300);border-radius:var(--radius);background:#fff;font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .1s}.pagination-btn:hover:not(:disabled){background:var(--yellow-light);border-color:var(--yellow)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.form-group{display:flex;flex-direction:column;gap:4px}.form-row{display:grid;gap:12px}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}.form-row-4{grid-template-columns:1fr 1fr 1fr 1fr}.form-label{font-size:11px;font-weight:700;color:var(--gray-700);text-transform:uppercase;letter-spacing:.05em}.form-label-required:after{content:" *";color:var(--red)}.form-control{padding:7px 10px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:13px;color:var(--black);background:#fff;transition:border-color .15s,box-shadow .15s;width:100%;font-family:inherit;line-height:1.4}.form-control:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 2px #1565c026}.form-control::placeholder{color:var(--gray-400)}.form-control:disabled{background:var(--gray-100);color:var(--gray-500);cursor:not-allowed}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%235d6d7e' d='M5 6L0 0h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}textarea.form-control{resize:vertical;min-height:70px}.no-spinner::-webkit-outer-spin-button,.no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spinner{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 14px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;font-size:12.5px;font-weight:600;font-family:inherit;transition:all .12s;white-space:nowrap;line-height:1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue-500);color:#fff;border-color:var(--blue-700)}.btn-primary:hover:not(:disabled){background:var(--blue-600)}.btn-yellow{background:var(--yellow);color:var(--black);border-color:var(--yellow-dark);font-weight:700}.btn-yellow:hover:not(:disabled){background:var(--yellow-mid)}.btn-success{background:var(--green);color:#fff;border-color:#1e8449}.btn-success:hover:not(:disabled){background:#1e8449}.btn-danger{background:var(--red);color:#fff;border-color:var(--red-dark)}.btn-danger:hover:not(:disabled){background:var(--red-dark)}.btn-blue{background:var(--blue-600);color:#fff;border-color:var(--blue-700);font-weight:700}.btn-blue:hover:not(:disabled){background:var(--blue-700)}.btn-ghost{background:#fff;color:var(--gray-700);border-color:var(--gray-300)}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.btn-sm{padding:4px 10px;font-size:11.5px}.btn-icon{padding:6px 8px}.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:3px;font-size:10.5px;font-weight:700;line-height:1.4;letter-spacing:.03em}.badge-success{background:var(--green-light);color:#1a6e3b;border:1px solid #a3d9b5}.badge-warning{background:var(--yellow-light);color:#8a5a00;border:1px solid #f5d48a}.badge-danger{background:var(--red-light);color:var(--red-dark);border:1px solid #f5c0bb}.badge-info{background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-100)}.badge-neutral{background:var(--gray-100);color:var(--gray-500);border:1px solid var(--gray-200)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0512238c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeOverlay .15s ease}.modal{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);width:100%;max-height:92vh;overflow-y:auto;animation:slideModal .18s ease;border:1px solid var(--gray-200)}.modal-sm{max-width:400px}.modal-md{max-width:560px}.modal-lg{max-width:760px}.modal-xl{max-width:960px}.modal-header{padding:12px 18px;background:var(--blue-700);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:var(--radius-md) var(--radius-md) 0 0}.modal-title{font-size:14px;font-weight:700;color:#fff}.modal-close{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc;cursor:pointer;padding:3px 7px;border-radius:var(--radius);font-size:13px;transition:all .12s;line-height:1}.modal-close:hover{background:var(--red);color:#fff;border-color:var(--red)}.modal-body{padding:20px 18px}.modal-footer{padding:12px 18px;border-top:2px solid var(--gray-100);display:flex;justify-content:flex-end;gap:8px;background:var(--gray-50);border-radius:0 0 var(--radius-md) var(--radius-md)}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}@keyframes slideModal{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:none}}.filters-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 20px;background:#fff;border-bottom:1px solid var(--gray-200)}.filters-bar .form-control{width:auto}.search-wrap{position:relative}.search-wrap input{padding-left:32px}.search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none;font-size:13px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:8px 20px 6px}.kpi-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:10px 14px;box-shadow:var(--shadow-xs);border-top:3px solid var(--blue-500);transition:box-shadow .15s}.kpi-card:hover{box-shadow:var(--shadow)}.kpi-card.yellow{border-top-color:var(--yellow)}.kpi-card.red{border-top-color:var(--red)}.kpi-card.green{border-top-color:var(--green)}.kpi-icon{width:36px;height:36px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:17px;margin-bottom:10px}.kpi-value{font-size:19px;font-weight:800;color:var(--black);line-height:1}.kpi-label{font-size:10.5px;color:var(--gray-500);font-weight:600;margin-top:4px;text-transform:uppercase;letter-spacing:.04em}.kpi-trend{font-size:10.5px;font-weight:600;margin-top:3px;display:flex;align-items:center;gap:3px}.kpi-trend.up{color:var(--green)}.kpi-trend.down{color:var(--red)}.kpi-trend.neutral{color:var(--gray-500)}.charts-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px}.chart-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:14px;box-shadow:var(--shadow-xs)}.chart-title{font-size:12px;font-weight:700;color:var(--blue-800);margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:2px solid var(--yellow)}.fin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:14px 20px 0}.fin-summary.fin-summary-resumo{grid-template-columns:4fr 1fr 1fr}.fin-card{border-radius:var(--radius-md);padding:14px 16px;border:1px solid}.fin-card.receivable{background:#eff6ff;border-color:var(--blue-100)}.fin-card.balance{background:var(--green-light);border-color:#a3d9b5}.fin-card-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.fin-card.receivable .fin-card-title{color:var(--blue-700)}.fin-card.balance .fin-card-title{color:#1a6e3b}.fin-card-value{font-size:24px;font-weight:800;margin:6px 0 2px}.fin-card.receivable .fin-card-value{color:var(--blue-700)}.fin-card.balance .fin-card-value{color:#1a6e3b}.fin-card-sub{font-size:11px}.fin-card.receivable .fin-card-sub{color:var(--blue-400)}.fin-card.balance .fin-card-sub{color:var(--green)}.stock-bar-bg{width:52px;height:5px;background:var(--gray-200);border-radius:3px;overflow:hidden}.stock-bar-fill{height:100%;border-radius:3px;transition:width .3s}.stock-indicator{display:flex;align-items:center;gap:6px}.alert{padding:10px 14px;border-radius:var(--radius);font-size:12.5px;font-weight:500;display:flex;align-items:center;gap:8px}.alert-success{background:var(--green-light);color:#1a6e3b;border:1px solid #a3d9b5}.alert-danger{background:var(--red-light);color:var(--red-dark);border:1px solid #f5c0bb}.alert-warning{background:var(--yellow-light);color:#8a5a00;border:1px solid #f5d48a}.alert-info{background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-100)}.login-page{position:relative;min-height:100vh;background:linear-gradient(160deg,var(--blue-900) 0%,var(--blue-700) 60%,#1a4570 100%);display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 60px #00000059;width:100%;max-width:380px;overflow:hidden}.login-card-header{background:var(--blue-900);padding:28px 28px 20px;text-align:center;border-bottom:3px solid var(--yellow)}.login-logo-icon{width:96px;height:96px;background:linear-gradient(180deg,#fff,#eef2f7);border-radius:18px;box-shadow:0 6px 14px #00000059,inset 0 1px #ffffffe6,inset 0 -2px 3px #0000000f;display:inline-flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:12px}.login-logo-title{font-size:18px;font-weight:800;color:#fff}.login-logo-sub{font-size:11px;color:#ffffff73;margin-top:3px;letter-spacing:.06em}.login-card-body{padding:24px 28px 28px}.login-form{display:flex;flex-direction:column;gap:14px}.login-submit{width:100%;padding:10px;font-size:14px;background:var(--yellow);color:var(--black);border-color:var(--yellow-dark)}.login-submit:hover{background:var(--yellow-mid)}.login-error{background:var(--red-light);color:var(--red-dark);border:1px solid #f5c0bb;padding:9px 12px;border-radius:var(--radius);font-size:12.5px}.d-flex{display:flex}.align-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.mb-4{margin-bottom:14px}.mb-6{margin-bottom:20px}.mt-4{margin-top:14px}.text-right{text-align:right}.text-center{text-align:center}.text-muted{color:var(--gray-500)}.text-sm{font-size:11.5px}.text-xs{font-size:10.5px}.font-bold{font-weight:700}.font-mono{font-family:Courier New,monospace;font-size:12px}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spinner{width:28px;height:28px;border:3px solid var(--gray-200);border-top-color:var(--blue-500);border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;align-items:center;justify-content:center;height:180px;flex-direction:column;gap:10px;color:var(--gray-500);font-size:12px}.section-divider{display:flex;align-items:center;gap:10px;margin:16px 0 12px}.section-divider-line{flex:1;height:1px;background:var(--gray-200)}.section-divider-text{font-size:10px;font-weight:700;color:var(--blue-700);text-transform:uppercase;letter-spacing:.08em;background:var(--yellow-light);padding:2px 8px;border-radius:3px;border:1px solid var(--yellow)}.perm-tree{display:flex;flex-direction:column;gap:18px}.perm-group-title{font-size:11px;font-weight:800;color:var(--blue-700);text-transform:uppercase;letter-spacing:.08em;padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between}.perm-group-title-check{display:flex;align-items:center;gap:8px}.perm-group-count{font-size:10px;font-weight:500;color:var(--gray-400);letter-spacing:0;text-transform:none}.perm-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius);font-size:12.5px;cursor:pointer;transition:background .1s;border:1px solid transparent;-webkit-user-select:none;user-select:none}.perm-item+.perm-item{margin-top:2px}.perm-item.enabled{background:var(--green-light);color:#1a5c34;border-color:#bce3ce}.perm-item.disabled{background:var(--gray-50);color:var(--gray-400)}.perm-item:not([style*=not-allowed]):hover{background:var(--blue-50);border-color:var(--blue-100);color:var(--blue-700)}.perm-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--blue-600);cursor:inherit;flex-shrink:0}.perm-item-label{flex:1;font-weight:500}.touch-app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--gray-50);font-size:15px}.touch-header{flex-shrink:0;height:128px;display:flex;align-items:flex-end;gap:6px;padding:0 6px 8px;background:var(--blue-900);color:#fff;box-shadow:var(--shadow);position:relative;z-index:1050}.touch-menu-btn,.touch-home-header-btn,.touch-refresh-btn,.touch-kbd-btn,.touch-logout-btn{width:64px;height:96px;display:flex;align-items:center;justify-content:center;font-size:30px;background:#ffffff14;border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;flex-shrink:0}.touch-menu-btn:active,.touch-home-header-btn:active,.touch-refresh-btn:active,.touch-kbd-btn:active,.touch-logout-btn:active{background:#fff3}.touch-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.touch-refresh-btn.spinning{animation:touch-refresh-spin .8s linear infinite}@keyframes touch-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.touch-header-title{flex:1;align-self:center;font-size:17px;font-weight:700;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.touch-content{flex:1;overflow-y:auto;padding:14px;-webkit-overflow-scrolling:touch}.touch-keypad-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1099;background:transparent;cursor:default}.touch-keypad{position:fixed;left:0;right:0;bottom:0;z-index:1100;background:#fff;border-top:1px solid var(--gray-200);box-shadow:0 -4px 16px #00000026;animation:touch-keypad-in .15s ease-out;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))}@keyframes touch-keypad-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.touch-keypad-header{display:flex;align-items:center;gap:8px;padding:2px 4px 8px}.touch-keypad-title{flex:1;font-size:12px;font-weight:700;color:var(--gray-500)}.touch-keypad-clear,.touch-keypad-close{border:none;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-weight:700}.touch-keypad-clear{background:var(--red-light);color:var(--red);font-size:12px;padding:7px 12px}.touch-keypad-close{background:var(--gray-100);color:var(--gray-500);font-size:14px;width:32px;height:32px}.touch-keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.touch-keypad-key{height:56px;font-size:22px;font-weight:700;color:var(--blue-900);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer}.touch-keypad-key:active{background:var(--blue-50);border-color:var(--blue-300)}.touch-keypad-key-back{color:var(--red);font-size:20px}.touch-keypad-alpha{display:flex;flex-direction:column;gap:4px}.touch-keypad-alpha-row{display:flex;gap:4px}.touch-keypad-key-alpha{flex:1;height:44px;font-size:15px;min-width:0;padding:0}.touch-keypad-key-alpha.touch-keypad-key-space{flex:1;font-size:12px}.touch-keypad-key-alpha.touch-keypad-key-delete{font-size:11px}.touch-option-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.touch-option-btn{min-height:48px;padding:10px 16px;font-size:14px;font-weight:600;color:var(--gray-700);background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer;font-family:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.touch-option-btn:active{background:var(--gray-50)}.touch-option-btn.active{background:var(--yellow-light);border-color:var(--yellow);color:var(--blue-900)}.touch-hub-menu{display:flex;flex-direction:column;gap:8px}.touch-hub-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:12px 16px;font-size:15px;font-weight:700;color:var(--gray-700);background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);text-align:left;cursor:pointer;font-family:inherit}.touch-hub-btn:active{background:var(--yellow-light);border-color:var(--yellow)}.touch-hub-btn-icon{font-size:18px;flex-shrink:0}.touch-home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.touch-home-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;min-height:140px;padding:18px 10px;font-size:16px;font-weight:700;color:var(--gray-700);text-align:center;background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer;font-family:inherit}.touch-home-btn:active{background:var(--yellow-light);border-color:var(--yellow)}.touch-home-btn-icon{font-size:42px;line-height:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--red);color:#fff;font-size:11px;font-weight:800;line-height:1;border-radius:999px;margin-left:6px;flex-shrink:0}.touch-home-btn-badge{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;background:var(--red);color:#fff;font-size:12px;font-weight:800;line-height:1;border-radius:999px;border:2px solid #fff}.touch-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1075;background:#00000073;display:flex}.touch-drawer{width:min(86vw,380px);height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:touch-drawer-in .18s ease-out}@keyframes touch-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.touch-drawer-user{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:18px 14px;background:var(--blue-900);color:#fff}.touch-drawer-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--blue-600);font-weight:700;font-size:15px;flex-shrink:0}.touch-drawer-avatar.admin-av{background:var(--yellow);color:var(--blue-900)}.touch-drawer-username{font-weight:700;font-size:14px}.touch-drawer-admin{font-size:11px;color:var(--yellow);font-weight:700;margin-top:2px}.touch-drawer-close{margin-left:auto;width:40px;height:40px;font-size:18px;background:#ffffff14;border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;flex-shrink:0}.touch-drawer-list{flex:1;overflow-y:auto;padding:8px}.touch-drawer-group{margin-top:10px}.touch-drawer-group-title{font-size:11px;font-weight:800;color:var(--gray-400);text-transform:uppercase;letter-spacing:.06em;padding:8px 12px 4px}.touch-drawer-item{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px 14px;font-size:15px;font-weight:600;color:var(--gray-700);background:none;border:none;border-radius:var(--radius-md);text-align:left;cursor:pointer}.touch-drawer-item:active{background:var(--gray-100)}.touch-drawer-item.active{background:var(--yellow-light);color:var(--blue-700);border-left:4px solid var(--yellow);padding-left:10px}.touch-drawer-item:disabled{color:var(--gray-300)}.touch-drawer-icon{font-size:17px}.touch-drawer-desktop{flex-shrink:0;margin:8px 8px 0;padding:14px;font-size:14px;font-weight:700;color:var(--blue-700);background:var(--blue-50);border:none;border-radius:var(--radius-md);cursor:pointer}.touch-drawer-logout{flex-shrink:0;margin:8px;padding:14px;font-size:14px;font-weight:700;color:var(--red);background:var(--red-light);border:none;border-radius:var(--radius-md);cursor:pointer}.touch-app .btn{min-height:44px;font-size:14px;padding:10px 16px}.touch-app .form-control{min-height:44px;font-size:15px;padding:10px 12px}.touch-app table{font-size:13.5px}.touch-app th,.touch-app td{padding:10px 8px}@media (max-width: 540px){.touch-app .kpi-grid{grid-template-columns:1fr 1fr}}.perm-item.enabled .perm-item-label{font-weight:600}.portal-root{min-height:100vh;display:flex;flex-direction:column;background:#f1f5f9;font-family:inherit}.portal-header{background:#1e3a8a;color:#fff;padding:0 16px;display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:50;box-shadow:0 2px 8px #00000040;min-height:52px;flex-wrap:wrap}.portal-header-brand{font-size:15px;font-weight:800;white-space:nowrap;padding:10px 0}.portal-header-supplier{flex:1;font-size:13px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.portal-header-nav{display:flex;gap:6px;flex-shrink:0;padding:8px 0}.portal-header-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);color:#fff;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:background .15s;white-space:nowrap}.portal-header-btn:hover{background:#ffffff38}.portal-header-btn-active{background:#ffffff40;border-color:#ffffff80}.portal-header-btn-sair{background:#dc262640;border-color:#dc262666}.portal-header-btn-sair:hover{background:#dc262673}.portal-main{flex:1;padding:20px 16px;max-width:900px;margin:0 auto;width:100%;box-sizing:border-box}.portal-footer{text-align:center;font-size:11px;color:#94a3b8;padding:16px;border-top:1px solid #e2e8f0}.portal-login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(160deg,#eff6ff,#f1f5f9)}.portal-login-brand{text-align:center;margin-bottom:28px}.portal-login-logo{font-size:52px;margin-bottom:8px}.portal-login-title{font-size:24px;font-weight:800;color:#1e3a8a}.portal-login-subtitle{font-size:14px;color:#64748b;margin-top:2px}.portal-login-card{background:#fff;border-radius:14px;padding:24px;width:100%;max-width:440px;box-shadow:0 4px 20px #00000014}.portal-login-card-title{font-size:16px;font-weight:700;color:#1e293b;margin-bottom:16px}.portal-search-input{width:100%;box-sizing:border-box;border:1.5px solid #e2e8f0;border-radius:8px;padding:11px 14px;font-size:15px;margin-bottom:12px;outline:none;transition:border-color .15s,box-shadow .15s}.portal-search-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.portal-supplier-list{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto}.portal-supplier-btn{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:12px 14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:border-color .15s,background .15s}.portal-supplier-btn:hover{border-color:#2563eb;background:#eff6ff}.portal-supplier-name{font-size:14px;font-weight:600;color:#1e293b}.portal-supplier-cnpj{font-size:11px;color:#94a3b8;font-family:monospace}.portal-supplier-sem-pin{font-size:11px;color:#b45309}.portal-empresa-identificada{text-align:center;background:#f0f9ff;border:1.5px solid #bae6fd;border-radius:10px;padding:14px 16px;margin-bottom:20px}.portal-empresa-label{font-size:10px;font-weight:700;color:#0369a1;text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px}.portal-empresa-nome{font-size:17px;font-weight:800;color:#1e293b}.portal-empresa-cnpj{font-size:11px;color:#64748b;font-family:monospace;margin-top:2px}.portal-form-group{margin-bottom:16px}.portal-label{display:block;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}.portal-pin-input{width:100%;box-sizing:border-box;border:1.5px solid #e2e8f0;border-radius:8px;padding:14px;font-size:26px;letter-spacing:10px;text-align:center;outline:none;font-family:monospace;transition:border-color .15s,box-shadow .15s}.portal-pin-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.portal-btn{display:block;width:100%;border:none;border-radius:8px;padding:14px;font-size:15px;font-weight:700;cursor:pointer;margin-bottom:8px;transition:background .15s,transform .08s}.portal-btn:disabled{opacity:.5;cursor:not-allowed}.portal-btn:active:not(:disabled){transform:scale(.98)}.portal-btn-primary{background:#2563eb;color:#fff}.portal-btn-primary:hover:not(:disabled){background:#1d4ed8}.portal-btn-ghost{background:#f1f5f9;color:#475569}.portal-btn-ghost:hover:not(:disabled){background:#e2e8f0}.portal-page{padding-bottom:40px}.portal-page-title{font-size:20px;font-weight:800;color:#1e293b;margin-bottom:16px}.portal-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.portal-stat{background:#fff;border-radius:10px;padding:18px 12px;text-align:center;box-shadow:0 1px 4px #0000000f;transition:transform .1s}.portal-stat:hover{transform:translateY(-1px)}.portal-stat-value{font-size:36px;font-weight:800;line-height:1}.portal-stat-label{font-size:11px;font-weight:700;color:#94a3b8;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.portal-stat-yellow .portal-stat-value{color:#d97706}.portal-stat-green .portal-stat-value{color:#16a34a}.portal-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.portal-filter-tabs{display:flex;background:#e2e8f0;border-radius:8px;padding:3px;gap:2px;flex:1}.portal-tab{flex:1;border:none;background:transparent;padding:8px 4px;border-radius:6px;font-size:13px;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s}.portal-tab-active{background:#fff;color:#1e293b;box-shadow:0 1px 3px #0000001a}.portal-btn-icon{background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 10px;font-size:16px;cursor:pointer;transition:background .15s;flex-shrink:0}.portal-btn-icon:hover:not(:disabled){background:#f1f5f9}.portal-btn-icon:disabled{opacity:.5;cursor:not-allowed}.portal-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.portal-table{width:100%;border-collapse:collapse;font-size:13px}.portal-table th{background:#f8fafc;padding:10px 12px;text-align:left;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e2e8f0}.portal-th-right{text-align:right!important}.portal-table td{padding:12px;border-bottom:1px solid #f1f5f9;vertical-align:top}.portal-table tr:last-child td{border-bottom:none}.portal-table tr:hover td{background:#f8fafc}.portal-row-atendida td{opacity:.55}.portal-product-name{font-weight:600;color:#1e293b;line-height:1.3}.portal-product-code{font-size:11px;color:#94a3b8;font-family:monospace;margin-top:2px}.portal-td-right{text-align:right;font-weight:700;white-space:nowrap}.portal-td-obs{font-size:12px;color:#64748b;max-width:140px}.portal-td-date{font-size:12px;color:#94a3b8;white-space:nowrap}.portal-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:20px;font-size:11px;font-weight:700}.portal-badge-yellow{background:#fef9c3;color:#a16207}.portal-badge-green{background:#dcfce7;color:#15803d}.portal-loading{text-align:center;padding:40px;color:#94a3b8}.portal-error{background:#fee2e2;color:#dc2626;border-radius:8px;padding:12px 14px;margin-bottom:14px;font-size:13px}.portal-link{background:none;border:none;color:#2563eb;cursor:pointer;font-size:13px;text-decoration:underline;padding:0}.portal-empty{text-align:center;padding:20px;color:#94a3b8;font-size:13px}.portal-empty-state{text-align:center;padding:52px 24px;color:#94a3b8}.portal-empty-icon{font-size:48px;margin-bottom:12px}.portal-success-state{text-align:center;padding:52px 24px}@media (max-width: 540px){.portal-th-hide-mobile{display:none!important}.portal-header-supplier{display:none}.portal-main{padding:14px 12px}}.portal-oferta-form{display:flex;flex-direction:column;gap:0}.portal-form-row{display:flex;gap:12px}.portal-textarea{width:100%;box-sizing:border-box;border:1.5px solid #e2e8f0;border-radius:8px;padding:10px 14px;font-size:14px;font-family:inherit;resize:vertical;outline:none;transition:border-color .15s,box-shadow .15s;line-height:1.5}.portal-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.portal-oferta-card{background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000f;overflow:hidden}.portal-oferta-card-header{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;margin-bottom:6px}.portal-oferta-titulo{font-size:15px;font-weight:700;color:#1e293b;flex:1}.portal-oferta-periodo{font-size:12px;color:#64748b;margin-bottom:8px}.portal-oferta-descricao{font-size:13px;color:#334155;white-space:pre-line;line-height:1.5;margin-bottom:8px}.portal-oferta-obs{font-size:12px;color:#64748b;background:#f8fafc;border-radius:6px;padding:8px 10px;margin-bottom:8px}.portal-oferta-actions{display:flex;gap:8px;padding-top:8px;border-top:1px solid #f1f5f9}.portal-oferta-card{padding:14px 16px}.portal-badge-blue{background:#dbeafe;color:#1d4ed8}.portal-badge-gray{background:#f1f5f9;color:#64748b}.badge-green{background:var(--green-50, #dcfce7);color:var(--green-700, #15803d);display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}.badge-blue{background:#dbeafe;color:#1d4ed8;display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}.badge-gray{background:#f1f5f9;color:#64748b;display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}@media (max-width: 480px){.portal-form-row{flex-direction:column}}.topbar-mobile-menu-btn{display:none;align-items:center;justify-content:center;background:none;border:none;color:var(--gray-500);font-size:22px;padding:4px 8px;cursor:pointer;border-radius:var(--radius);flex-shrink:0;line-height:1}.topbar-mobile-menu-btn:active{background:var(--gray-100)}.topbar-user-admin-badge{font-size:10px;color:var(--yellow-dark);font-weight:700}@media (max-width: 768px){body{overflow-x:hidden}.topbar-mobile-menu-btn{display:flex}.topbar-sep,.topbar-company,.topbar-touch-link,.topbar-user-name-text,.topbar-user-admin-badge,.topnav-wrapper,.breadcrumb-bar{display:none}.table-responsive,[style*=overflow-x]{-webkit-overflow-scrolling:touch}.page-header{padding:10px 14px}.module-toolbar{padding:6px 12px}.filters-bar{padding:8px 12px}.kpi-grid{grid-template-columns:1fr 1fr;padding:8px 14px}.charts-grid{grid-template-columns:1fr}.fin-summary,.fin-summary.fin-summary-resumo{grid-template-columns:1fr;padding:12px 14px 0}.modal-overlay{padding:0;align-items:flex-end}.modal-inner{margin:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:92vh;max-width:100%!important;width:100%}.modal-sm,.modal-md,.modal-lg,.modal-xl{max-width:100%}}.mobile-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#00000080;display:flex}.mobile-drawer{width:min(85vw,340px);height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:mobile-drawer-in .2s ease-out}@keyframes mobile-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-drawer-header{display:flex;align-items:center;gap:10px;padding:14px;background:var(--blue-900);color:#fff;flex-shrink:0}.mobile-drawer-close{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;cursor:pointer;flex-shrink:0}.mobile-drawer-user{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--blue-950);flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.08);color:#fff}.mobile-drawer-body{flex:1;overflow-y:auto}.mobile-drawer-dashboard{display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;font-size:14px;font-weight:600;color:var(--gray-700);background:none;border:none;border-bottom:1px solid var(--gray-100);cursor:pointer;font-family:inherit;text-align:left}.mobile-drawer-dashboard:active{background:var(--gray-100)}.mobile-drawer-dashboard.active{color:var(--blue-700);background:var(--blue-50);font-weight:700}.mobile-drawer-section{border-bottom:1px solid var(--gray-100)}.mobile-drawer-section-btn{display:flex;align-items:center;gap:10px;width:100%;padding:13px 16px;font-size:14px;font-weight:600;color:var(--gray-700);background:none;border:none;cursor:pointer;font-family:inherit}.mobile-drawer-section-btn:active{background:var(--gray-50)}.mobile-drawer-section-btn.mob-sec-active{color:var(--blue-700)}.mobile-drawer-section-arrow{font-size:13px;color:var(--gray-400);transition:transform .2s;display:inline-block;flex-shrink:0}.mobile-drawer-section-arrow.open{transform:rotate(180deg)}.mobile-drawer-section-items{padding:2px 0 8px 42px}.mobile-drawer-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 16px 9px 0;font-size:13px;font-weight:500;color:var(--gray-600);background:none;border:none;cursor:pointer;font-family:inherit}.mobile-drawer-item:active{color:var(--blue-700)}.mobile-drawer-item.active{color:var(--blue-700);font-weight:700}.mobile-drawer-footer{flex-shrink:0;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom,10px));border-top:1px solid var(--gray-200);display:flex;flex-direction:column;gap:8px}.mobile-drawer-action-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;font-size:13px;font-weight:600;color:var(--blue-700);background:var(--blue-50);border:none;border-radius:var(--radius-md);cursor:pointer;font-family:inherit}.mobile-drawer-action-btn:disabled{opacity:.5}.mobile-drawer-logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;font-size:13px;font-weight:700;color:var(--red);background:var(--red-light);border:none;border-radius:var(--radius-md);cursor:pointer;font-family:inherit}.topbar-sugestao{color:#8a5a00;background:var(--yellow-light);border-color:#f5d48a}.topbar-sugestao:hover{background:var(--yellow);color:var(--black)}.topbar-pendencia{color:var(--red-dark, #9b1c1c);background:var(--red-light);border-color:#f5c0bb}.topbar-pendencia:hover{background:#fbd5d1}
