body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(9px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.content-container{height:100%;overflow-y:auto;padding:24px}.project-toolbar{align-items:center;background-color:#fff;display:flex;justify-content:space-between}.search-box input{font-size:14px}.search-box button .material-icons{font-size:20px}.filter-button{align-items:center;color:#333;display:flex;font-size:14px;gap:4px;padding:8px 16px}.filter-button:hover{background-color:#eee}.filter-button .material-icons{color:#666;font-size:20px}.filter-box select.filter-button{-webkit-appearance:none;appearance:none;background-color:#f5f5f5;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='m7 10 5 5 5-5z' fill='%23666'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border:none;border-radius:4px;cursor:pointer;font-size:14px;min-width:180px;padding:8px 32px 8px 16px}.filter-box select.filter-button:hover{background-color:#e0e0e0}.toolbar-right{gap:16px}.add-project-btn{font-size:14px}.view-toggle{border:1px solid #e0e0e0;overflow:hidden}.toggle-btn{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;padding:8px}.toggle-btn:not(:last-child){border-right:1px solid #e0e0e0}.toggle-btn.active,.toggle-btn:hover{background-color:#f5f5f5}.toggle-btn.active{color:#1976d2}.toggle-btn .material-icons{font-size:20px}:root{--status-pending:gold;--status-in-progress:#4caf50;--status-completed:#2196f3;--status-on-hold:#ff9800;--status-cancelled:#f44336;--status-default:#9e9e9e}.projects-container{display:flex;flex-direction:column;height:100%}.auth-message-banner{align-items:center;animation:fadeIn .5s ease-out,pulse 2s infinite;background-color:#d32f2f;border-left:6px solid #a00;border-radius:4px;box-shadow:0 4px 12px #0000004d;color:#fff;display:flex;font-size:15px;font-weight:700;margin-bottom:20px;padding:16px 20px;position:relative;width:100%;z-index:100}.auth-message-banner .material-icons{font-size:23px;margin-right:12px}.auth-message-banner span:nth-child(2){flex-grow:1;line-height:1.5}.auth-message-banner button{align-items:center;background:#fff3;border:1px solid #fff6;border-radius:50%;color:#fff;cursor:pointer;display:flex;padding:4px;transition:all .2s ease}.auth-message-banner button:hover{background:#ffffff4d;transform:scale(1.1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{box-shadow:0 0 0 0 #ff9800b3}70%{box-shadow:0 0 0 10px #ff980000}to{box-shadow:0 0 0 0 #ff980000}}.fixed-header{background:#fff;position:-webkit-sticky;position:sticky;top:0}@media screen and (max-width:768px){.scrollable-content{padding:12px}}.projects-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.add-project-btn{align-items:center;background-color:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:8px 16px}.add-project-btn:hover{background-color:#1565c0}.view-toggle{display:flex;gap:8px}.view-toggle button{background:none;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;padding:8px;transition:all .2s}.view-toggle button.active{background-color:#e3f2fd;border-color:#2196f3;color:#1976d2}.projects-grid{display:flex;flex-direction:column;gap:12px;margin-top:8px;width:100%}.project-card-wrapper{cursor:pointer;width:100%}.project-card{background:#fff;border:1px solid #e0e0e0;border-radius:6px;overflow:hidden;width:100%}.project-card-heading{padding:10px 12px}.project-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.project-contract-info{flex:1 1}.contract-id{align-items:center;display:flex;gap:5px;margin-bottom:4px}.contract-id .label{color:#555;font-size:12px;font-weight:500}.contract-id .value{color:#1976d2;font-size:13px;font-weight:600}.project-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#333;display:-webkit-box;font-size:15px;font-weight:600;line-height:1.3;margin:0;max-height:40px;overflow:hidden;text-overflow:ellipsis}.status-badge{border-radius:10px;font-size:11px}.project-status-badge{margin-left:8px}.status-special{background-color:#f5d582;border-radius:12px;color:#856404;font-size:12px;font-weight:500;padding:5px 10px}.project-timeline-info{display:flex;gap:16px;justify-content:space-between;margin-top:8px}.project-timeline{display:flex;flex:2 1;flex-direction:column}.timeline-values{display:flex;flex-direction:column;margin-top:2px}.time-value{color:#333;font-size:14px;font-weight:600}.date-value{color:#555;font-size:12px;margin-top:2px}.info-label{color:#777;display:block;font-size:11px;margin-bottom:1px}.project-type{display:flex;flex:1 1;flex-direction:column}.type-value{color:#333;font-size:14px;font-weight:600;margin-top:4px}.project-body{background-color:#fafafa;border-top:1px solid #eee;padding:8px 12px}.bidder-info{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr)}.info-row{grid-gap:10px;display:grid;gap:10px;grid-column:span 4;grid-template-columns:repeat(4,1fr)}.info-item{display:flex;flex-direction:column;min-width:0}.info-item .label{color:#666;font-size:11px;font-weight:400;margin-bottom:2px}.info-item .value{color:#333;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loading{font-size:16px}.no-contracts-container{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:12px;display:flex;justify-content:center;margin:20px;min-height:80%;padding:80px 20px}.no-contracts-message{align-items:center;background:#fff;border:1px solid #e8edf3;border-radius:20px;display:flex;flex-direction:column;max-width:480px;overflow:hidden;padding:48px 40px;position:relative;text-align:center}.no-contracts-message:before{background:linear-gradient(90deg,#152790,#5aaeef,#39dcc9);content:"";height:4px;left:0;position:absolute;right:0;top:0}.no-contracts-icon{align-items:center;background:linear-gradient(135deg,#78bcf4,#58eadc);border-radius:50%;box-shadow:0 8px 25px #44a9ba4d;display:flex;height:80px;justify-content:center;margin-bottom:24px;width:80px}.no-contracts-icon .material-icons{color:#fff;font-size:40px}.no-contracts-content h3{color:#2c3e50;font-family:Inter,sans-serif;font-size:24px;font-weight:600;margin:0 0 16px}.no-contracts-content p{color:#5a6c7d;font-family:Inter,sans-serif;font-size:16px;line-height:1.6;margin:0 0 32px}.retry-button-modern{align-items:center;background:linear-gradient(135deg,#369ef9,#51eddb);border:none;border-radius:25px;box-shadow:0 4px 15px #4cafad4d;color:#fff;cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:14px;font-weight:500;gap:8px;justify-content:center;margin:0 auto;padding:14px 28px;text-transform:none;transition:all .3s ease}.retry-button-modern:hover{background:linear-gradient(135deg,#5f76f4,#24a9b3);box-shadow:0 6px 20px #aebef066;transform:translateY(-2px)}.retry-button-modern .material-icons{font-size:18px}@media screen and (max-width:768px){.no-contracts-container{margin:10px;padding:40px 15px}.no-contracts-message{border-radius:16px;padding:32px 24px}.no-contracts-icon{height:64px;margin-bottom:20px;width:64px}.no-contracts-icon .material-icons{font-size:32px}.no-contracts-content h3{font-size:20px;margin-bottom:12px}.no-contracts-content p{font-size:14px;margin-bottom:24px}.retry-button-modern{font-size:13px;padding:12px 24px}}.error-container{align-items:center;padding:40px 20px}.error-message{background-color:#fff3f3;box-shadow:0 3px 6px #0000001a;gap:16px;padding:24px}.error-message .material-icons{color:#f44336;font-size:31px}.error-message h3{color:#d32f2f;margin:0 0 8px}.error-message p{color:#555;margin:0 0 16px}.retry-button{background-color:#f44336;color:#fff;font-size:13px;gap:8px;padding:8px 16px;transition:background-color .2s}.retry-button:hover{background-color:#d32f2f}.error{color:#f44336;padding:20px;text-align:center}.project-table-container{border-radius:8px!important;box-shadow:0 2px 10px #0000000d!important;overflow:hidden}.project-table-container .MuiTableHead-root{background-color:#f5f5f5}.project-table-container .MuiTableCell-head{color:#333;font-weight:600;padding:16px 12px;white-space:nowrap}.project-table-container .MuiTableRow-root:hover{background-color:#f9f9f9}.project-table-container .MuiTableCell-root{border-color:#f0f0f0;padding:12px}.project-table-container .MuiTableSortLabel-active,.project-table-container .MuiTableSortLabel-root:hover{color:#1976d2}.progress-cell{align-items:center;display:flex;gap:10px;width:100%}.progress-cell .progress-bar-container{flex:1 1;margin:0}.progress-cell .progress-text{min-width:40px;text-align:right;white-space:nowrap}.project-table-row{cursor:pointer;transition:background-color .2s}.project-table-row:hover{background-color:#f5f5f5}.empty-state{background-color:#f9f9f9;color:#666;padding:40px 20px}.empty-state .material-icons{color:#bbb;font-size:47px;margin-bottom:16px}.table-cell-contract-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-name-cell{color:#1976d2;font-weight:500}.pagination-container{border-bottom:1px solid #eee;flex-wrap:wrap;gap:15px;margin-bottom:8px}.pagination-left{gap:15px}.total-count{color:#555;font-size:13px}.project-table-container.bottom{justify-content:space-between}.items-per-page-container{align-items:center!important;display:flex!important;flex-direction:row!important;gap:10px;min-width:220px}.items-per-page-label{color:#666;flex:1 1;font-size:13px;white-space:nowrap}.items-per-page-select{flex-shrink:0;margin-right:-26px!important;min-width:70px!important}.select-dropdown{background-color:initial;border:1px solid #ddd;border-radius:4px;cursor:pointer;gap:4px;padding:4px 10px;position:relative;z-index:1}.selected-value{color:#1976d2;font-size:13px;font-weight:500}.dropdown-icon{color:#1976d2;font-size:19px}.MuiPopover-root .items-per-page-menu{margin-top:4px}.MuiPopover-root .MuiMenu-paper{background-color:#fff;border-radius:4px;box-shadow:0 2px 8px #00000026}.MuiPopover-root .MuiMenuItem-root{font-size:13px;min-height:36px;padding:6px 16px}.MuiPopover-root .MuiMenuItem-root:hover{background-color:#1976d214}.MuiPopover-root .Mui-selected{background-color:#1976d21f!important;color:#1976d2;font-weight:500}.pagination-container.bottom{border-bottom:none;border-top:1px solid #eee;justify-content:center;margin-top:20px;padding-top:10px}.pagination-simple{gap:15px}.page-info{color:#666;font-size:13px}@media screen and (max-width:600px){.projects-toolbar{align-items:stretch;flex-direction:column}.add-project-btn{width:100%}.add-project-btn,.view-toggle{justify-content:center}.pagination-left{align-items:flex-start;flex-direction:column;gap:10px;width:100%}.items-per-page-container{justify-content:space-between!important;width:100%}.pagination-container{align-items:center}.pagination-container,.pagination-container.bottom{flex-direction:column;gap:15px}.pagination-simple{flex-direction:column;gap:10px}}.user-toolbar{background-color:#fff;justify-content:space-between}.toolbar-left,.user-toolbar{align-items:center;display:flex}.toolbar-left{flex:1 1;gap:16px}.search-box{flex:1 1;margin-right:16px;max-width:400px}.search-box form{align-items:center;background-color:#f5f5f5;border-radius:4px;display:flex;padding:6px 12px}.search-box input{background:none;border:none;font-size:13px;outline:none;padding:0 8px;width:100%}.search-box input:focus{outline:none}.search-box button{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;margin-left:8px;padding:4px;transition:color .2s}.search-box button:hover{color:#1976d2}.search-box button .material-icons{font-size:19px}.filter-box{align-items:center;display:flex;margin-left:8px}.filter-button{-webkit-appearance:none;appearance:none;background-color:#f5f5f5;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='m7 10 5 5 5-5z' fill='%23666'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border:none;border-radius:4px;cursor:pointer;font-size:13px;min-width:180px;padding:8px 32px 8px 16px}.filter-button:hover{background-color:#e0e0e0}.filter-select:focus{border-color:#1976d2;outline:none}.add-user-btn,.toolbar-right{align-items:center;display:flex}.add-user-btn{background-color:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;gap:8px;padding:8px 16px}.add-user-btn:hover{background-color:#1565c0}.add-user-btn .material-icons{font-size:20px}.app-filter-bar{align-items:center;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--sub-border,#e5e7eb);border-radius:8px;display:flex;gap:12px;margin-bottom:14px;padding:14px}.app-filter-bar__icon{flex:0 0 auto}.app-filter-bar__fields{align-items:center;display:flex;flex:1 1 auto;gap:12px;min-width:0}.app-filter-bar__fields .MuiTextField-root{min-width:210px}.app-filter-bar__actions{align-items:center;display:flex;flex:0 0 auto;gap:8px;margin-left:auto}@media (max-width:768px){.app-filter-bar,.app-filter-bar__actions,.app-filter-bar__fields{flex-wrap:wrap}.app-filter-bar__actions,.app-filter-bar__fields{width:100%}.app-filter-bar__actions{margin-left:0}}.fixed-header{padding:16px;z-index:1}.user-list-container h2{color:#333;color:var(--text-primary,#333);font-size:1.4rem;font-weight:500;margin-bottom:1.5rem}.user-table-container th{background-color:#f5f5f5;color:#666;font-size:.775rem;font-weight:500;padding:12px 16px;text-align:left}.user-table-container td{border-top:1px solid #f0f0f0;color:#333;font-size:.775rem;max-width:100%;overflow:hidden;padding:12px 16px;text-overflow:ellipsis;white-space:nowrap}.user-table-container tr:hover{background-color:#f9f9f9}.user-name-with-avatar{align-items:center;display:flex;gap:.75rem}.user-name-with-avatar span{color:#333;font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-avatar{align-items:center;background-color:#f5f5f5;border-radius:50%;box-shadow:0 1px 2px #0000001a;display:flex;font-size:15px;height:40px;justify-content:center;object-fit:cover;width:40px}.error-message{background-color:#ffebee;border-left:4px solid #d32f2f;border-radius:4px;color:#d32f2f;font-size:.775rem;margin-bottom:1rem;padding:.75rem 1rem}.loading{align-items:center;color:#666;font-size:.9rem;height:200px;width:100%}.error-container,.loading{display:flex;justify-content:center}.error-container{padding:2rem 0}.error-message{align-items:flex-start;background-color:#fff;border:1px solid #ffcdd2;border-radius:8px;display:flex;gap:1rem;max-width:600px;padding:1.5rem}.retry-button{align-items:center;background-color:#f0f0f0;border:none;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:.775rem;gap:.5rem;margin-top:1rem;padding:.5rem 1rem}.retry-button:hover{background-color:#e0e0e0}.empty-state{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#64748b;display:flex;flex-direction:column;justify-content:center;margin:1rem 0;padding:3rem 1rem;text-align:center}.empty-state .material-icons{color:#94a3b8;font-size:2.9rem;margin-bottom:1rem}.pagination-container{align-items:center;display:flex;justify-content:space-between}.pagination-container.top{border-bottom:1px solid #e0e0e0;padding-bottom:4px}.pagination-container.bottom{border-top:1px solid #e0e0e0;margin-top:1rem;padding-top:1rem}.pagination-left{align-items:center;display:flex;gap:1rem}.items-per-page-container{align-items:center;display:flex;gap:.5rem}.items-per-page-label{color:#64748b;font-size:.75rem}.items-per-page-select{font-size:.75rem;min-width:70px}.select-dropdown{align-items:center;display:flex;gap:.25rem}.dropdown-icon{font-size:1.15rem}.page-info,.total-count{color:#64748b;font-size:.75rem}.pagination-simple{align-items:center;display:flex;gap:1rem}.page-size-selector{align-items:center;display:flex;margin-left:1.5rem}.page-size-selector select{background-color:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:.775rem;margin-left:.5rem;padding:.375rem .5rem}.MuiPagination-root{display:flex}.MuiPagination-ul{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.MuiPaginationItem-root{border-radius:4px;margin:0 4px}.MuiPaginationItem-page.Mui-selected{background-color:#1976d2;color:#fff}.role-badge,.status-badge{border-radius:16px;display:inline-block;font-size:.65rem;letter-spacing:.4px;padding:.25rem .75rem}.role-badge{color:#fff;font-weight:500;text-align:center}.users-container{background-color:#f9fafb;display:flex;flex-direction:column;height:calc(100vh - 64px);max-width:100%;overflow-x:hidden;width:100%}.scrollable-content{flex-grow:1;max-width:100%;overflow-x:hidden;overflow-y:auto;padding:8px 16px}.user-table-container{background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:1rem;overflow:hidden;width:100%}.user-table-container table{border-collapse:collapse;table-layout:fixed;width:100%}.user-table-container td,.user-table-container th{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scrollable-content{overflow-x:hidden!important}.MuiTableContainer-root{max-width:100%!important;overflow-x:auto!important;padding-right:0!important;width:100%!important}.MuiTable-root{min-width:800px!important;padding-right:16px!important;table-layout:fixed!important;width:100%!important}.action-cell{min-width:140px!important;padding-right:24px!important;width:12%!important}.MuiTableCell-root{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.MuiTableCell-root[width="4%"]{min-width:40px}.MuiTableCell-root[width="8%"]{min-width:80px}.MuiTableCell-root[width="10%"]{min-width:100px}.MuiTableCell-root[width="12%"]{min-width:120px}.MuiTableCell-root[width="15%"]{min-width:150px}.MuiTableCell-root[width="12%"]:nth-child(4){max-width:180px;overflow:hidden;text-overflow:ellipsis}.MuiTableCell-root[width="10%"]:nth-child(7),.MuiTableCell-root[width="10%"]:nth-child(8){font-size:.875rem;min-width:110px;white-space:nowrap}.user-actions{display:flex;gap:8px;justify-content:center}.modern-dialog-paper{border-radius:10px;box-shadow:0 2px 10px #00000014;min-width:400px;padding:10px}.modern-dialog-title{color:#333;font-size:1.2rem;font-weight:500;padding:16px 24px 8px}.modern-dialog-content{color:#666;font-size:.95rem;padding:8px 24px 16px}.modern-dialog-actions{display:flex;gap:8px;justify-content:flex-end;padding:8px 16px 16px}.modern-button{border-radius:20px;box-shadow:none;font-weight:500;min-width:100px;padding:6px 20px;text-transform:none}.modern-button.cancel{background-color:#f5f5f5;border:1px solid #e0e0e0;color:#666}.modern-button.cancel:hover{background-color:#eaeaea}.modern-button.confirm{color:#fff}.modern-button.confirm.activate{background-color:#4caf50}.modern-button.confirm.activate:hover{background-color:#3d8b40}.modern-button.confirm.deactivate{background-color:#ff9800}.modern-button.confirm.deactivate:hover{background-color:#e68900}.modern-backdrop{background-color:#00000080}.form-row{width:100%}.form-row-2-col{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.avatar-upload-section{align-items:center;display:flex;flex-direction:column;margin:1rem 0}.avatar-actions{display:flex;justify-content:center;margin-top:.5rem}.avatar-to-be-removed{opacity:.5;position:relative}.avatar-to-be-removed:after{color:red;content:"✕";font-size:2rem;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.avatar-feedback{color:#757575;font-size:.8rem;font-style:italic;margin-top:.5rem}.alert-margin{margin:1rem 0}.sidebar{background:#fff;border-right:1px solid #edf0f5;display:flex;flex-direction:column;height:100vh;left:0;overflow-x:hidden;position:fixed;top:0;transition:width .25s ease,background .25s ease;width:230px;z-index:100}.sidebar.collapsed{width:76px}.sidebar-header{border-bottom:1px solid #edf0f5;flex-shrink:0;height:72px;padding:0 18px}.sidebar-header,.sidebar-logo{align-items:center;display:flex}.sidebar-logo{gap:14px;width:100%}.sidebar-logo-img{flex-shrink:0;height:42px;object-fit:contain;width:42px}.sidebar-title{display:flex;flex-direction:column;overflow:hidden}.sidebar-title-sub{color:#2563eb;font-size:12px;font-weight:700;letter-spacing:.3px;white-space:nowrap}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:14px 10px 18px}.sidebar-nav::-webkit-scrollbar{width:5px}.sidebar-nav::-webkit-scrollbar-track{background:#0000}.sidebar-nav::-webkit-scrollbar-thumb{background:#d7dce5;border-radius:999px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#c7cfdb}.sidebar-group{border-bottom:1px solid #edf0f5;display:flex;flex-direction:column;gap:6px}.sidebar-group+.sidebar-group{margin-top:12px}.sidebar-group:last-child{border-bottom:none;padding-bottom:0}.sidebar-group-button,.sidebar-link{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;justify-content:space-between;min-height:42px;outline:none;text-decoration:none;transition:background .2s ease,color .2s ease,transform .15s ease;width:100%}.sidebar-group-button{border-radius:8px;color:#6b7280;min-height:32px;padding:0 8px 0 10px}.sidebar-link{border-left:4px solid #0000;border-radius:0 8px 8px 0;color:#374151;padding:0 12px 0 10px;position:relative}.sidebar-group-button:hover,.sidebar-link:hover{background:#f4f7fb}.sidebar-group-button:hover .sidebar-expand-icon,.sidebar-group-button:hover .sidebar-text,.sidebar-link:hover .sidebar-icon,.sidebar-link:hover .sidebar-text{color:#2563eb}.sidebar-direct-item.active .sidebar-link,.sidebar-submenu-item.active .sidebar-link{background:#f4f7fb;border-left-color:#2563eb;color:#2563eb}.sidebar-direct-item.active .sidebar-icon,.sidebar-direct-item.active .sidebar-text,.sidebar-submenu-item.active .sidebar-icon,.sidebar-submenu-item.active .sidebar-text{color:#2563eb;font-weight:600}.sidebar-group-button.expanded{background:#f8fafc}.sidebar-group-button .sidebar-text{color:#6b7280;font-size:12px;font-weight:700;letter-spacing:.3px;margin-left:0;text-transform:uppercase}.sidebar-item-left{align-items:center;display:flex;flex:1 1;min-width:0;width:50%}.sidebar-icon{align-items:center;color:#6b7280;display:flex;justify-content:center;min-width:20px;transition:color .2s ease;width:20px}.sidebar-icon svg{font-size:20px}.sidebar-text{color:#374151;font-size:12.5px;font-weight:500;margin-left:8px;margin-right:12px;overflow:hidden;text-overflow:ellipsis;transition:color .2s ease,font-weight .2s ease;white-space:nowrap}.level-0{padding-left:0}.level-1{padding-left:8px}.sidebar-expand-icon{align-items:center;color:#9ca3af;display:inline-flex;font-size:18px;height:22px;justify-content:center;transition:transform .2s ease,color .2s ease;width:22px}.sidebar-group-button.expanded .sidebar-expand-icon{color:#2563eb;transform:rotate(90deg)}.sidebar-submenu{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:0}.sidebar-direct-item,.sidebar-submenu-item{min-width:0}.sidebar-direct-item .sidebar-link,.sidebar-submenu-item .sidebar-link{width:calc(100% - 20px)}.sidebar-group-button:active,.sidebar-link:active{transform:scale(.98)}.sidebar.collapsed .sidebar-header{padding:0 17px;width:230px}.sidebar.collapsed .sidebar-text,.sidebar.collapsed .sidebar-title{display:none}.sidebar.collapsed .sidebar-nav{padding:14px 10px 18px}.sidebar.collapsed .sidebar-group{gap:5px}.sidebar.collapsed .sidebar-group+.sidebar-group{margin-top:12px}.sidebar.collapsed .sidebar-group-button{border-radius:8px;justify-content:center;min-height:28px;padding:0}.sidebar.collapsed .sidebar-group-button .sidebar-item-left{display:none}.sidebar.collapsed .sidebar-expand-icon{color:#9ca3af;height:28px;width:28px}.sidebar.collapsed .sidebar-link{border-left-width:3px;border-radius:0 8px 8px 0;justify-content:center;min-height:30px;padding:0}.sidebar.collapsed .sidebar-submenu{display:flex}.sidebar.collapsed .sidebar-item-left{flex:initial;justify-content:center}.sidebar.collapsed .level-1{padding-left:0}.sidebar.collapsed .sidebar-direct-item.active .sidebar-link,.sidebar.collapsed .sidebar-submenu-item.active .sidebar-link{background:#f4f7fb;border-left-color:#2563eb}.sidebar.collapsed .sidebar-direct-item.active .sidebar-icon,.sidebar.collapsed .sidebar-submenu-item.active .sidebar-icon{color:#2563eb}.app-bar{background:#fff;border-radius:0 8px 8px 0;height:56px;justify-content:space-between;margin-right:8px}.app-bar,.app-bar-left{align-items:center;display:flex}.app-bar-left{gap:16px}.sidebar-toggle{align-items:center;background:none;border:none;border-radius:8px;color:#64748b;cursor:pointer;display:flex;height:40px;justify-content:center;width:40px}.app-bar-search,.sidebar-toggle:hover{background:#f8fafc}.app-bar-search{border:1px solid #e2e8f0;border-radius:8px;color:#64748b;font-size:.775rem;height:36px;padding:0 16px;width:300px}.app-bar-search:focus{background:#fff;border-color:#4680ff;outline:none}.app-bar-right{gap:8px;position:relative}.app-bar-icon,.app-bar-right{align-items:center;display:flex}.app-bar-icon{background:none;border:none;border-radius:8px;color:#64748b;cursor:pointer;height:36px;justify-content:center;width:36px}.app-bar-icon:hover{background:#f8fafc}.app-bar-avatar{align-items:center;border-radius:50%;cursor:pointer;display:flex;height:36px;justify-content:center;padding:2px;transition:background-color .2s ease;width:36px}.app-bar-avatar:hover{background-color:#f8fafc}.page-title{color:#1a1a1a;font-size:1.15rem;font-weight:500;margin:0}.page-title-group{min-width:0}.page-subtitle{color:#657383;font-size:.8rem;line-height:1.3;margin:3px 0 0}.user-menu{border-radius:8px;box-shadow:0 2px 10px #0000001a;min-width:220px;padding:8px 0;right:0;top:calc(100% + 8px);z-index:1000}.user-menu,.user-menu:before{background:#fff;position:absolute}.user-menu:before{box-shadow:-2px -2px 2px #0000000d;content:"";height:8px;right:16px;top:-4px;transform:rotate(45deg);width:8px}.user-menu-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;margin-bottom:4px;padding:12px 16px}.greeting{color:#222;display:flex;flex-direction:column;font-size:14px;font-weight:600;gap:4px}.user-role{background:#e8f4fd;border:1px solid #d1ecf1;border-radius:12px;color:#666;display:inline-block;padding:3px 10px}.user-menu-release,.user-role{font-size:12px;font-weight:500}.user-menu-release{border-top:1px solid #f0f0f0;color:#777;line-height:1.4;margin-top:4px;padding:8px 16px 2px;text-align:right}.user-role.admin{background:#9c27b0;border-color:#9c27b0;color:#fff}.user-role.operator{background:#2196f3;border-color:#2196f3;color:#fff}.user-role.creator{background:#4caf50;border-color:#4caf50;color:#fff}.user-role.viewer{background:#798e01;border-color:#798e01;color:#fff}.user-menu-divider{background:#f0f0f0;height:1px;margin:4px 0}.user-menu-item{align-items:center;color:#222;cursor:pointer;display:flex;gap:8px;padding:8px 16px;text-decoration:none;transition:background .2s}.user-menu-item:hover{background:#f0f0f0}.user-menu-item.danger{color:#dc3545}.user-menu-item.danger:hover{background:#fff5f5}.user-menu .material-icons{font-size:1.1rem;opacity:.8}.app-content,.app-layout{background:#f7f9fb;display:flex;min-height:100vh}.app-content{flex:1 1;flex-direction:column;margin-left:258px;transition:margin-left .2s ease;width:calc(100% - 258px)}.app-content.collapsed{margin-left:76px;width:calc(100% - 76px)}.app-content.full{margin-left:0;width:100%}.app-header{background:#fff;border-bottom:1px solid #e0e0e0;border-left:1px solid #f0f0f0;height:56px;left:258px;position:fixed;right:0;top:0;transition:left .2s ease;z-index:1000}.app-header.collapsed{left:76px}.app-content.full .app-header{left:0}.app-main{background:#f7f9fb;flex:1 1;margin-top:56px;min-height:calc(100vh - 56px)}.app-main,.personnel-container{display:flex;flex-direction:column}.personnel-container{height:100%}.fixed-header{background:#0000!important;border-bottom:none!important;padding:16px 16px 8px;z-index:2}.toolbar-container{align-items:center;display:flex;gap:16px}.scrollable-content{background:#f8f9fb;flex:1 1;overflow:auto;padding:16px}.wrap-text-cell{max-width:200px}.wrap-text-cell,.wrap-text-header{word-wrap:break-word!important;white-space:normal!important}.wrap-text-header{font-weight:700}.personnel-table-container{background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;box-shadow:none;overflow:hidden}.personnel-table-container table{border-collapse:collapse;table-layout:fixed;width:100%}.personnel-table-container th{background-color:#f5f5f5;color:#666;font-size:.775rem;font-weight:500;padding:12px 16px;text-align:left}.personnel-table-container td{border-top:1px solid #f0f0f0;color:#333;font-size:.775rem;max-width:100%;overflow:hidden;padding:12px 16px;text-overflow:ellipsis;white-space:nowrap}.personnel-table-container tr:hover{background-color:#f9f9f9}.pagination-container.bottom{display:flex;justify-content:flex-end;margin-top:16px}.toolbar-container .MuiTextField-root{background:#fff;border-radius:4px;box-shadow:none}.toolbar-container .MuiButton-root{box-shadow:none}.personnel-toolbar.user-toolbar{align-items:center;background-color:#fff;display:flex;justify-content:space-between}.personnel-toolbar .toolbar-left{align-items:center;display:flex;flex:1 1;gap:16px}.personnel-toolbar .search-box{flex:1 1;margin-right:16px;max-width:600px}.personnel-toolbar .search-box form{align-items:center;border-radius:4px;display:flex}.personnel-toolbar .search-box input{background:none;border:none;font-size:13px;outline:none;padding:0 8px;width:100%}.personnel-toolbar .search-box input:focus{outline:none}.personnel-toolbar .search-box button{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;margin-left:8px;padding:4px;transition:color .2s}.personnel-toolbar .search-box button:hover{color:#1976d2}.personnel-toolbar .search-box button .material-icons{font-size:19px}.personnel-table-toolbar-row{align-items:center;background:none;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.5rem 0}.personnel-table-toolbar-left{align-items:center;display:flex;gap:1rem}.table-page-size-label{color:#64748b;font-size:.75rem;margin-right:4px}.table-page-size-select{background:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;font-size:.75rem;margin-right:12px;min-width:70px;padding:4px 8px}.table-total-label{color:#1976d2;font-size:.75rem;font-weight:500}.total-count strong{color:#1976d2;font-weight:600}.status-badge{align-items:center;border-radius:12px;color:#fff;display:inline-flex;font-size:.75rem;font-weight:500;justify-content:center;min-width:80px;padding:4px 8px;text-align:center}:root{--status-completed:#4caf50;--status-pending:#ff9800}.contract-items-workspace{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.contract-items-workspace.detail-open{grid-template-columns:minmax(0,1fr) 380px}.contract-items-master{min-width:0}.contract-items-table-shell{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;width:100%}.contract-items-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-height:40px;padding:4px 0}.contract-items-add-button{border-radius:8px!important;box-shadow:none!important;font-family:Inter,sans-serif!important;font-size:.78rem!important;font-weight:650!important;text-transform:none!important}.contract-items-toolbar .MuiIconButton-root{background:#fff;border:1px solid #e2e8f0;border-radius:8px;height:30px;width:30px}.contract-items-toolbar .MuiFormControlLabel-root{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;margin-left:2px;margin-right:8px;padding:2px 8px 2px 2px}.contract-items-toolbar .MuiFormControlLabel-label,.contract-items-toolbar .MuiTypography-root{font-family:Inter,sans-serif;font-size:.74rem}.contract-items-table-shell .MuiToolbar-root{background:#f8fafc;border-bottom:1px solid #e2e8f0;min-height:46px;padding:6px 10px}.contract-items-table .MuiTableCell-root{border-bottom:1px solid #eef2f7}.contract-items-table .MuiTableHead-root .MuiTableCell-root,.sticky-header-cell{background-color:#f8fafc!important;border-bottom:1px solid #d8dee6!important;box-shadow:0 1px 0 #0f172a0f!important;position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:80!important}.contract-items-table tbody .MuiTableCell-root[style*="position: sticky"],.sticky-cell{border-right:1px solid #e2e8f0!important;box-shadow:2px 0 8px #0f172a0f!important;position:-webkit-sticky!important;position:sticky!important;z-index:35!important}.contract-items-table .level-0,.level-0-row{background-color:#f8fafc!important;font-weight:650}.contract-items-table .level-1,.level-1-row{background-color:#fff!important}.contract-items-table .level-2{background-color:#fff}.level-0-row:hover,.level-0-row:hover .sticky-cell,.level-1-row:hover,.level-1-row:hover .sticky-cell{background-color:#f1f5f9!important}.contract-items-indent-0{padding-left:12px}.contract-items-indent-1{padding-left:30px}.contract-items-indent-2{padding-left:48px}.contract-detail-panel{align-self:start;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 24px #0f172a14;max-height:calc(100vh - 150px);min-width:0;overflow:hidden;position:-webkit-sticky;position:sticky;top:8px}.contract-detail-panel-inner{background:#fff;display:flex;flex-direction:column;max-height:calc(100vh - 150px);min-height:360px}.contract-detail-header{align-items:flex-start;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;gap:10px;justify-content:space-between;padding:12px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.contract-detail-header-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.contract-detail-code{color:#1976d2;font-family:Inter,sans-serif!important;font-size:.76rem!important;font-weight:750!important;line-height:1.2!important}.contract-detail-name{color:#111827;font-family:Inter,sans-serif!important;font-size:.88rem!important;font-weight:700!important;line-height:1.35!important;margin-top:6px!important}.contract-detail-status{margin-top:8px}.contract-payment-count-chip,.contract-type-chip-leaf,.contract-type-chip-parent{border-radius:999px!important;font-family:Inter,sans-serif!important;font-size:.64rem!important;font-weight:650!important;height:22px!important}.contract-type-chip-parent{background:#1976d214!important;color:#1976d2!important}.contract-type-chip-leaf{background:#2e7d3217!important;color:#2e7d32!important}.contract-detail-body{background:#f8fafc;display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding:12px}.contract-detail-section,.contract-detail-system{background:#fff!important;border:1px solid #e2e8f0!important;border-radius:12px!important;box-shadow:none!important;padding:12px}.contract-detail-system{padding:0}.contract-detail-system:before{display:none}.contract-detail-system .MuiAccordionSummary-root{min-height:38px;padding:0 12px}.contract-detail-system .MuiAccordionSummary-content{margin:8px 0}.contract-detail-system .MuiAccordionDetails-root{padding:0 12px 12px}.contract-detail-section-title{color:#111827;font-family:Inter,sans-serif!important;font-size:.74rem!important;font-weight:750!important;line-height:1.2!important;margin-bottom:10px!important}.contract-detail-metrics,.contract-payment-card-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.contract-detail-field{min-width:0}.contract-detail-label{color:#64748b;font-family:Inter,sans-serif!important;font-size:.68rem!important;font-weight:650!important;line-height:1.2!important}.contract-detail-value{color:#111827;font-family:Inter,sans-serif!important;font-size:.78rem!important;line-height:1.35!important;margin-top:2px!important;word-break:break-word}.contract-detail-value-money,.contract-detail-value-strong{font-weight:750!important}.contract-detail-value-money{color:#111827}.contract-detail-progress-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.contract-detail-progress-percent{color:#111827;font-family:Inter,sans-serif!important;font-size:.9rem!important;font-weight:800!important}.contract-detail-empty{align-items:center;display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:260px;padding:20px;text-align:center}.contract-detail-empty-title{color:#334155;font-family:Inter,sans-serif!important;font-size:.82rem!important;font-weight:750!important}.contract-detail-empty-inline,.contract-detail-empty-text{color:#64748b;font-family:Inter,sans-serif!important;font-size:.72rem!important}.contract-detail-empty-text{max-width:260px}.contract-detail-empty-inline{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:10px;text-align:center}.contract-detail-alert{border-radius:10px!important;font-family:Inter,sans-serif!important;font-size:.72rem!important;padding:4px 8px}.contract-payment-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px}.contract-payment-card-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between;margin-bottom:10px}.contract-payment-phase{color:#111827;font-family:Inter,sans-serif!important;font-size:.74rem!important;font-weight:700!important}.contract-payment-subtext{color:#64748b;font-family:Inter,sans-serif!important;font-size:.66rem!important;margin-top:2px!important}.contract-payment-count-chip{background:#1976d214!important;color:#1976d2!important}.contract-payment-values{text-align:right;white-space:nowrap}.contract-payment-after,.contract-payment-before{font-family:Inter,sans-serif!important;font-size:.7rem!important;font-weight:700!important}.contract-payment-before{color:#1976d2}.contract-payment-after{color:#2e7d32}.contract-detail-drawer-tablet{border-left:1px solid #e2e8f0;width:min(420px,92vw)}.contract-detail-drawer-mobile{border-radius:12px 12px 0 0;height:min(86vh,680px)}.status-chip-cancelled,.status-chip-completed,.status-chip-in-progress,.status-chip-paused,.status-chip-pending{border:1px solid #0000!important}.status-chip-pending{background-color:#9e9e9e1f!important;color:#616161!important}.status-chip-in-progress{background-color:#4caf501f!important;color:#2e7d32!important}.status-chip-completed{background-color:#2196f31f!important;color:#1976d2!important}.status-chip-paused{background-color:#ff98001f!important;color:#ed6c02!important}.status-chip-cancelled{background-color:#f443361f!important;color:#d32f2f!important}.parent-amount{color:#111827!important;font-weight:700!important}.expandable-row{cursor:pointer}.expand-icon{transition:transform .2s ease}.expand-icon.expanded{transform:rotate(90deg)}.contract-item-modal .MuiTextField-root{margin-bottom:8px}.contract-item-modal .preview-amount{background-color:#e3f2fd;border-radius:8px;margin:8px 0;padding:12px}@media (max-width:768px){.contract-items-workspace,.contract-items-workspace.detail-open{display:block}.contract-items-table-shell{border-radius:10px}.contract-items-table .MuiTableCell-root{font-size:.75rem;padding:8px 4px}.contract-items-indent-0{padding-left:8px}.contract-items-indent-1{padding-left:24px}.contract-items-indent-2{padding-left:40px}.contract-detail-panel-inner{max-height:min(86vh,680px);min-height:0}.contract-detail-metrics,.contract-payment-card-grid{grid-template-columns:1fr}}@media (min-width:769px) and (max-width:1199px){.contract-items-workspace,.contract-items-workspace.detail-open{display:block}}.payment-table .MuiTableHead-root .MuiTableCell-root{background-color:#f8f9fa!important;box-shadow:0 2px 4px #0000001a!important;position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:1300!important}.payment-table .MuiTableBody-root .MuiTableCell-root{position:relative!important;z-index:1!important}.payment-table thead.MuiTableHead-root{position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:1300!important}.contract-detail-container{margin:0 auto}.contract-detail-paper{border:1px solid #e0e0e0;border-radius:8px}.contract-header-section{border-bottom:1px solid #e0e0e0;margin-bottom:4px}.contract-content-grid{margin-top:0}.contract-info-item{margin-bottom:16px;padding:0}.contract-info-item:last-child{margin-bottom:0}.contract-info-item .MuiTypography-subtitle2{color:#666;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.contract-info-item .MuiTypography-body1{color:#333;font-size:1rem;line-height:1.5}.contract-detail-container .MuiChip-root{font-size:.75rem;height:24px}.contract-detail-container .MuiChip-label{padding-left:8px;padding-right:8px}@media (max-width:768px){.contract-detail-container{padding:16px}.contract-detail-paper{padding:20px}.contract-header-section{margin-bottom:12px}.contract-info-item{margin-bottom:16px;padding:8px 0}}.permission-management{max-width:100%;padding:16px}.permission-management .MuiTab-root{color:#666;transition:all .2s ease}.permission-management .MuiTab-root.Mui-selected{color:#1976d2;font-weight:700}.permission-management .MuiTabs-indicator{border-radius:2px;height:3px}.permission-management .tab-content{padding:24px}.role-permission-management{font-family:Inter,sans-serif;padding:20px}.role-item{transition:all .3s ease!important}.role-item.selected{border-color:#1976d2!important;box-shadow:0 2px 8px #1976d226!important}.role-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.MuiAccordion-root{border:1px solid #e0e0e0!important;box-shadow:none!important;margin-bottom:8px!important}.MuiAccordion-root:before{display:none!important}.MuiAccordionSummary-root{background-color:#f8f9fa!important}.MuiFormControlLabel-root{margin-left:0!important;margin-right:0!important}.MuiCheckbox-root{padding:4px 8px!important}.permission-search-container{background-color:#fff;border-bottom:1px solid #e0e0e0;margin-bottom:16px;padding-bottom:16px;position:-webkit-sticky;position:sticky;top:0;z-index:1}@media (max-width:768px){.role-permission-management{padding:10px}.MuiGrid-item{padding:8px!important}}.user-role-management{font-family:Inter,sans-serif;padding:20px}.user-item{transition:all .3s ease!important}.user-item.selected{border-color:#1976d2!important;box-shadow:0 2px 8px #1976d226!important}.user-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.MuiListItem-root{background-color:#fafafa!important}.MuiListItem-root:hover{background-color:#f5f5f5!important}.role-assignment-warning{border-radius:4px;margin-top:16px}@media (max-width:768px){.user-role-management{padding:10px}.MuiGrid-item{padding:8px!important}.user-item{padding:12px!important}}.permission-overview{font-family:Inter,sans-serif;padding:20px}.MuiCard-root{border:1px solid #e0e0e0!important;box-shadow:none!important;transition:all .3s ease!important}.MuiCard-root:hover{box-shadow:0 4px 12px #0000001a!important;transform:translateY(-2px)}.MuiTableContainer-root{border-radius:0!important}.MuiTableHead-root{background-color:#f8f9fa!important}.MuiTableRow-root:hover{background-color:#f5f5f5!important}.MuiTabs-root{background-color:#fafafa}.MuiTab-root{font-weight:500!important;text-transform:none!important}.overview-card{padding:24px;text-align:center}.overview-card h4{font-weight:700;margin-bottom:8px}.overview-card .MuiTypography-body2{margin-top:8px}.permission-name{background-color:#f5f5f5;border-radius:4px;font-family:Courier New,monospace!important;font-size:.85rem;padding:2px 6px}.stats-grid{margin-bottom:24px}@media (max-width:768px){.permission-overview{padding:10px}.MuiGrid-item{padding:8px!important}.MuiTableContainer-root{overflow-x:auto}.MuiTextField-root{min-width:200px!important}}.user-permission-management{font-family:Inter,sans-serif;padding:24px}.user-permission-management .MuiPaper-root:not(.MuiAlert-root){background:#fff;border-radius:8px}.user-permission-management .MuiChip-root{font-size:.95rem;margin-right:4px}.user-permission-management .MuiTableCell-root{font-size:.98rem}.user-permission-management .MuiTextField-root{margin-bottom:12px}.user-permission-management .MuiLinearProgress-root{margin-bottom:16px}.user-permission-management .MuiGrid-item{padding-bottom:0!important}.permission-application-panel,.permission-detail-panel{background:#fff;border:1px solid #e0e0e0;border-radius:8px}.permission-application-panel{padding:12px}.permission-application-title{align-items:center;color:#1976d2;display:flex;gap:8px;margin-bottom:12px}.permission-application-list{grid-gap:8px;display:grid;gap:8px;grid-auto-flow:column;max-height:620px;overflow:auto;padding-right:4px}.permission-application-item{grid-gap:4px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:inherit;cursor:pointer;display:grid;font:inherit;gap:4px;padding:10px 12px;text-align:left;transition:border-color .16s ease,background-color .16s ease;width:100%}.permission-application-item.selected,.permission-application-item:hover{background:#e3f2fd;border-color:#1976d2}.permission-application-name{font-weight:700;line-height:1.3}.permission-application-meta{color:#6b7280;font-size:.82rem}.permission-detail-panel{min-height:360px;overflow:hidden}.permission-detail-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.permission-section-list{grid-gap:12px;display:grid;gap:12px;max-height:620px;overflow:auto;padding:12px}.permission-section{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.permission-section-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e5e7eb;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.permission-item-list{display:grid}.permission-item{grid-gap:6px;align-items:start;border-bottom:1px solid #f0f0f0;display:grid;gap:6px;grid-template-columns:40px minmax(0,1fr);padding:10px 12px}.permission-item:last-child{border-bottom:0}.permission-item-main{min-width:0}.permission-item-title{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}@media (max-width:1199px){.permission-application-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-height:none}}.application-management{max-width:100%;padding:16px}.application-detail-panel,.application-list-panel{border:1px solid #e0e0e0;height:calc(100vh - 128px);min-height:560px;overflow:hidden}.application-list-panel{padding:16px}.application-detail-panel,.application-list-panel{display:flex;flex-direction:column}.application-detail-header,.application-panel-header{align-items:center;display:flex;gap:12px}.application-panel-header{margin-bottom:16px}.application-detail-header{border-bottom:1px solid #eee;justify-content:space-between;padding:16px}.application-summary-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.application-list{display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding-right:4px}.application-list-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:10px;padding:12px;text-align:left;transition:border-color .2s ease,background-color .2s ease;width:100%}.application-list-item:hover{background:#f7fbff;border-color:#1976d2}.application-list-item.selected{background:#e3f2fd;border-color:#1976d2}.application-list-item-main{min-width:0}.application-list-item-main .MuiTypography-root{overflow-wrap:anywhere}.application-list-item-meta{display:flex;flex-wrap:wrap;gap:6px}.application-tab-content{flex:1 1;overflow:auto;padding:16px}.application-management .MuiTab-root{color:#666;transition:all .2s ease}.application-management .MuiTab-root.Mui-selected{color:#1976d2;font-weight:700}.application-management .MuiTabs-indicator{border-radius:2px;height:3px}@media (max-width:900px){.application-detail-panel,.application-list-panel{height:auto;min-height:0}.application-detail-header{align-items:flex-start;flex-direction:column}.application-summary-chips{justify-content:flex-start}}.portal-page{background:#f5f7fb;color:#1f2937;min-height:100vh}.portal-shell{margin:0 auto;padding:24px 0 40px;width:min(1180px,calc(100% - 32px))}.portal-topbar{gap:16px;justify-content:space-between;margin-bottom:20px}.portal-brand,.portal-topbar{align-items:center;display:flex}.portal-brand{gap:12px}.portal-brand img{height:52px;object-fit:contain;width:52px}.portal-user-panel{align-items:center;border:1px solid #e0e7ef;border-radius:8px;display:flex;gap:24px;justify-content:space-between;margin-bottom:24px;padding:20px}.portal-user-main{align-items:center;display:flex;gap:16px;min-width:0}.portal-user-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.portal-user-stats{border-left:1px solid #e0e7ef;min-width:180px;padding-left:24px;text-align:right}.portal-section-header{align-items:flex-end;display:flex;gap:16px;justify-content:space-between;margin-bottom:14px}.portal-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:220px}.portal-app-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.portal-app-card{background:#fff;border:1px solid #e0e7ef;border-radius:8px;color:inherit;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;min-height:210px;padding:18px;text-align:left;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.portal-app-card:hover{border-color:#4680ff;box-shadow:0 10px 26px #1f293714;transform:translateY(-2px)}.portal-app-card-action,.portal-app-card-top{align-items:center;display:flex;gap:12px;justify-content:space-between}.portal-app-icon{align-items:center;background:#eef4ff;border-radius:8px;color:#4680ff;display:inline-flex;height:42px;justify-content:center;width:42px}.portal-app-card-body{margin:18px 0}.portal-app-card-body .MuiTypography-root{overflow-wrap:break-word}.portal-app-card-action{color:#4680ff}@media (max-width:720px){.portal-shell{padding-top:16px;width:min(100% - 24px,1180px)}.portal-topbar,.portal-user-panel{align-items:stretch;flex-direction:column}.portal-user-stats{border-left:0;border-top:1px solid #e0e7ef;min-width:0;padding-left:0;padding-top:16px;text-align:left}}.development-page{align-items:center;background:linear-gradient(180deg,#1976d214,#f8fafc00 38%),#f8fafc;display:flex;justify-content:center;min-height:100vh;padding:24px}.development-panel{grid-gap:48px;align-items:center;background:#fff;border:1px solid #e0e7ef;border-radius:8px;box-shadow:0 18px 45px #0f172a14;display:grid;gap:48px;grid-template-columns:minmax(280px,.9fr) minmax(320px,1fr);min-height:560px;overflow:hidden;padding:48px;width:min(1080px,100%)}.development-visual{min-height:380px}.development-rocket,.development-visual{align-items:center;display:flex;justify-content:center;position:relative}.development-rocket{background:linear-gradient(180deg,#fff,#e3f2fd);border:3px solid #1976d2;border-radius:36px 36px 50% 50%;box-shadow:0 14px 28px #1976d224;color:#1976d2;height:132px;transform:translateY(-48px) rotate(-45deg);width:132px;z-index:2}.development-rocket .MuiSvgIcon-root{color:#1976d2;font-size:76px;transform:rotate(45deg)}.development-rocket:before{background:#26c6da;border:3px solid #1976d2;border-radius:50%;content:"";height:28px;position:absolute;right:22px;top:18px;width:28px}.development-rocket:after{background:linear-gradient(180deg,#42a5f5,#26c6da);border:3px solid #1976d2;border-radius:18px;bottom:22px;content:"";height:72px;left:-20px;position:absolute;width:32px}.development-cloud{background:#fff;border:3px solid #1976d2;box-shadow:0 12px 24px #0f172a0f;position:absolute}.development-cloud-main{border-radius:56px;bottom:48px;height:96px;left:50%;transform:translateX(-50%);width:330px}.development-cloud-main:after,.development-cloud-main:before,.development-cloud-side:before{background:#fff;border:3px solid #1976d2;border-bottom-color:#fff;border-radius:50%;content:"";position:absolute}.development-cloud-main:before{bottom:38px;height:120px;left:42px;width:120px}.development-cloud-main:after{bottom:28px;height:150px;right:48px;width:150px}.development-cloud-side{border-radius:42px;bottom:82px;height:64px;opacity:.9;right:10px;width:148px}.development-cloud-side:before{bottom:22px;height:76px;left:24px;width:76px}.development-content{align-items:flex-start;display:flex;flex-direction:column;gap:18px;max-width:520px}.development-eyebrow{color:#1976d2}.development-eyebrow,.development-title{font-weight:700!important;letter-spacing:0!important}.development-title{color:#1e293b;line-height:1.18!important}.development-description{color:#64748b;line-height:1.7!important;max-width:480px}.development-back-button{background:#1976d2!important;border-radius:8px!important;box-shadow:none!important;margin-top:10px!important;padding:10px 22px!important;text-transform:none!important}.development-back-button:hover{background:#1565c0!important;box-shadow:none!important}.development-content .MuiTypography-root{overflow-wrap:anywhere}@media (max-width:900px){.development-panel{gap:24px;grid-template-columns:1fr;min-height:0;padding:32px}.development-visual{min-height:280px}.development-content{align-items:center;margin:0 auto;text-align:center}}@media (max-width:600px){.development-page{align-items:flex-start;padding:16px}.development-panel{padding:24px 18px}.development-title{font-size:1.65rem!important}.development-visual{min-height:230px;transform:scale(.82);transform-origin:center}}.MuiButton-root{text-transform:none!important}.MuiButton-root,.MuiButton-root:hover,.MuiPaper-root{box-shadow:none!important}.MuiChip-root{font-weight:500!important}.MuiListItem-root{margin-bottom:8px!important}.MuiListItem-root,.MuiListItem-root:hover{background-color:initial!important}.MuiDialog-paper{border-radius:8px!important}.MuiAvatar-root{font-weight:700!important}.release-log-card{border:1px solid #e0e0e0!important;box-shadow:0 2px 8px #0000001a!important;transition:box-shadow .3s ease,transform .3s ease!important;will-change:transform}.release-log-card--latest{border:2px solid #219ebc!important}.release-log-card:hover{box-shadow:0 4px 16px #00000026!important;transform:translateY(-2px)!important}@media (max-width:768px){.MuiGrid-item{padding:8px!important}.user-item{padding:12px!important}}.user-profile-container{box-sizing:border-box;margin:0 auto;padding:24px;width:100%}.user-profile-content{background:#fff;border:1px solid #e3e9ef;border-radius:12px!important;overflow:hidden}.user-profile-heading{align-items:center;background:#f7f9fc;display:flex;gap:16px;justify-content:space-between;padding:22px 24px 18px}.user-profile-name{color:#17212b;font-weight:700!important;line-height:1.3!important}.user-profile-tabs{border-top:1px solid #eef1f4}.user-profile-tab-content{grid-gap:20px;display:grid;gap:20px;margin-top:20px}.user-profile-overview-card{border:1px solid #e3e9ef!important;border-radius:12px!important;box-shadow:0 1px 2px #10182808!important}.user-profile-overview-content{padding:24px!important}.user-profile-admin-note,.user-profile-stat-item{background:#f8fafc;border:1px solid #e6ebf0;border-radius:10px;box-sizing:border-box;height:100%;padding:18px}.user-profile-admin-note{background:#faf5ff;border-color:#e9d5ff}@media (max-width:768px){.user-profile-container{padding:16px}.user-profile-heading{align-items:flex-start;padding:18px 16px 14px}.user-profile-overview-content{padding:20px!important}}@media (max-width:480px){.user-profile-heading{flex-direction:column}}.fc{font-family:Inter,sans-serif!important}.fc-header-toolbar{border-bottom:1px solid #e0e0e0;margin-bottom:1rem!important;padding:0 0 1rem}.fc-button-group{gap:.1rem!important}.fc-toolbar-chunk{gap:.75rem!important}.fc-toolbar-title{color:#1976d2;font-size:1.3rem!important;font-weight:600!important}.fc-button{background:#f5f5f5!important;border:1px solid #e0e0e0!important;border-radius:6px!important;box-shadow:none!important;color:#666!important;font-size:.875rem!important;font-weight:500!important;margin:0 .25rem!important;padding:.375rem .75rem!important;text-transform:none!important}.fc-button:hover{background:#e0e0e0!important;border-color:#bdbdbd!important;color:#333!important}.fc-button-active{background:#1976d2!important;border-color:#1976d2!important;color:#fff!important}.fc-button:focus{box-shadow:none!important}.fc-button:disabled{opacity:.6!important}.fc-today-button{background:#2196f3!important;border-color:#2196f3!important;color:#fff!important}.fc-today-button:hover{background:#1976d2!important;border-color:#1976d2!important}.fc-col-header-cell{background:#f8f9fa!important;color:#555!important;font-size:.875rem!important;font-weight:600!important;padding:.75rem .5rem!important}.fc-col-header-cell,.fc-daygrid-day{border-color:#e0e0e0!important}.fc-daygrid-day-top{padding:.5rem!important}.fc-daygrid-day-number{color:#666!important;font-size:.875rem!important;font-weight:500!important;padding:.25rem!important;text-decoration:none!important}.fc-day-today{background-color:#e3f2fd!important}.fc-day-today .fc-daygrid-day-number{align-items:center!important;background:#1976d2!important;border-radius:50%!important;color:#fff!important;display:flex!important;height:2rem!important;justify-content:center!important;width:2rem!important}.fc-day-other .fc-daygrid-day-number{color:#bdbdbd!important}.fc-event{border:none!important;border-radius:4px!important;box-shadow:0 1px 3px #0000001a!important;cursor:pointer!important;font-size:.75rem!important;font-weight:500!important;margin:.125rem .25rem!important;padding:.125rem .375rem!important}.fc-event:hover{box-shadow:0 2px 6px #00000026!important;transform:translateY(-1px)!important;transition:all .2s ease!important}.fc-event-title{font-weight:500!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.fc-event-time{font-size:.7rem!important;font-weight:400!important;opacity:.9!important}.fc-more-link{border-radius:3px!important;color:#1976d2!important;font-size:.75rem!important;font-weight:500!important;padding:.125rem .25rem!important;text-decoration:none!important}.fc-more-link:hover{background:#e3f2fd!important}.fc-timegrid-event{border-radius:3px!important;font-size:.75rem!important}.fc-timegrid-slot{border-color:#f0f0f0!important}.fc-timegrid-axis{color:#666!important;font-size:.75rem!important}.fc-list-day-cushion{background:#f8f9fa!important;color:#666!important;font-size:.875rem!important;font-weight:600!important}.fc-list-event{border-color:#e0e0e0!important}.fc-list-event-title{color:#333!important;font-weight:500!important}.fc-list-event-time{color:#666!important;font-size:.875rem!important}@media (max-width:768px){.fc-toolbar{flex-direction:column!important;gap:1rem!important}.fc-toolbar-chunk{display:flex!important;justify-content:center!important}.fc-button{font-size:.75rem!important;padding:.25rem .5rem!important}.fc-toolbar-title{font-size:1.25rem!important;margin-bottom:.5rem!important}}:root{--sub-primary:#0b5cab;--sub-primary-dark:#08447f;--sub-primary-soft:#eaf3fb;--sub-bg:#f4f7fa;--sub-border:#dfe6ed;--sub-text:#17212b;--sub-muted:#657383}.subcontract-layout{background:#f4f7fa;background:var(--sub-bg);color:#17212b;color:var(--sub-text);font-family:Inter,sans-serif;min-height:100vh}.subcontract-layout .sidebar{overflow:visible;z-index:1200}.subcontract-sidebar-toggle{background:#fff;border:1px solid #edf0f5;border-radius:50%;box-shadow:0 2px 7px #0f172a1a;color:#9ca3af;cursor:pointer;display:grid;font-size:16px;height:32px;padding:0;place-items:center;position:absolute;right:-11px;top:56px;transition:color .18s ease,box-shadow .18s ease,transform .18s ease;width:32px;z-index:2}.subcontract-sidebar-toggle:hover{box-shadow:0 3px 10px #0f172a29;color:#0b5cab;color:var(--sub-primary);transform:scale(1.06)}.subcontract-sidebar-toggle:focus-visible{outline:2px solid #0b5cab;outline:2px solid var(--sub-primary);outline-offset:2px}.subcontract-sidebar{background:#fff;border-right:1px solid #e5e9ee;box-shadow:3px 0 14px #1e30410d;color:#171b20;inset:0 auto 0 0;position:fixed;transition:width .2s ease;width:252px;z-index:1200}.subcontract-sidebar.collapsed{width:72px}.subcontract-sidebar__brand{align-items:center;border-bottom:1px solid #e8ecf0;display:flex;gap:11px;height:68px;overflow:hidden;padding:0 16px}.subcontract-sidebar__brand img{flex:0 0 auto;height:39px;object-fit:contain;width:39px}.subcontract-sidebar__brand div{display:flex;flex-direction:column;white-space:nowrap}.subcontract-sidebar__brand span{color:#5f6873;font-size:10px;font-weight:600;letter-spacing:.08em}.subcontract-sidebar__brand strong{color:#11151a;font-size:12px;font-weight:750;letter-spacing:.025em;margin-top:2px}.subcontract-sidebar__nav{padding:22px 10px}.subcontract-sidebar__caption{color:#11151a;display:block;font-size:14px;font-weight:750;letter-spacing:-.01em;padding:0 13px 14px}.subcontract-sidebar__caption:before{color:#0b5cab;color:var(--sub-primary);content:"✦";margin-right:9px}.subcontract-sidebar__group{align-items:center;background:#0000;border:0;border-radius:24px;color:#171b20;cursor:pointer;display:flex;font:inherit;font-size:13px;justify-content:space-between;margin:3px 0;min-height:46px;padding:0 9px;transition:color .18s ease,background-color .18s ease;width:100%}.subcontract-sidebar__group:hover{background:#f3f6f8}.subcontract-sidebar__group.active,.subcontract-sidebar__menu-group.expanded>.subcontract-sidebar__group{background:#0b5cab;background:var(--sub-primary);color:#fff}.subcontract-sidebar__group-content{align-items:center;display:flex;min-width:0}.subcontract-sidebar__group>svg{font-size:18px;margin-right:5px}.subcontract-sidebar__group .MuiIconButton-root{color:inherit;height:38px;width:38px}.subcontract-sidebar__group-content>span{font-weight:600;margin-left:5px;white-space:nowrap}.subcontract-sidebar__link{align-items:center;border-radius:24px;color:#171b20;display:flex;margin:3px 0;min-height:46px;padding:0 9px;text-decoration:none;transition:.18s ease}.subcontract-sidebar__link:hover{background:#f3f6f8;color:#0b5cab;color:var(--sub-primary)}.subcontract-sidebar__link.active{background:#0b5cab;background:var(--sub-primary);color:#fff}.subcontract-sidebar__link .MuiIconButton-root{color:inherit;height:38px;width:38px}.subcontract-sidebar__link span{font-size:13px;font-weight:600;margin-left:5px;white-space:nowrap}.subcontract-sidebar__children{grid-gap:3px;border-left:1px solid #b8c1ca;display:grid;gap:3px;margin:4px 0 10px 24px;padding:3px 0 3px 14px;position:relative}.subcontract-sidebar__child-link{align-items:center;border-radius:22px;color:#252b32;display:flex;min-height:42px;padding:0 10px;text-decoration:none;transition:color .18s ease,background-color .18s ease}.subcontract-sidebar__child-link:hover{background:#f4f7fa;color:#0b5cab;color:var(--sub-primary)}.subcontract-sidebar__child-link.active{background:#eaf3fb;background:var(--sub-primary-soft);color:#0b5cab;color:var(--sub-primary);font-weight:650}.subcontract-sidebar__child-link .MuiIconButton-root{color:inherit;height:34px;width:34px}.subcontract-sidebar__child-link span{font-size:13px;margin-left:4px;white-space:nowrap}.subcontract-sidebar.collapsed .subcontract-sidebar__nav{padding-inline:8px}.subcontract-sidebar.collapsed .subcontract-sidebar__caption{display:none}.subcontract-sidebar.collapsed .subcontract-sidebar__group,.subcontract-sidebar.collapsed .subcontract-sidebar__link{justify-content:center;padding:0}.subcontract-sidebar.collapsed .subcontract-sidebar__group-content>span{display:none}.subcontract-layout__content{margin-left:230px;min-height:100vh;transition:margin .25s ease}.subcontract-layout__content.collapsed{margin-left:76px}.subcontract-layout__header{left:230px;position:fixed;right:0;top:0;transition:left .25s ease;z-index:1100}.subcontract-layout__header .app-bar{background:#fff;height:76px;padding-inline:24px}.subcontract-layout__header .app-bar-left{align-items:flex-start}.subcontract-layout__header .page-title{color:#17212b;color:var(--sub-text);font-size:20px;font-weight:750;line-height:1.2}.subcontract-layout__header .page-subtitle{color:#657383;color:var(--sub-muted);font-size:13px;margin-top:4px}.subcontract-layout__header .app-bar-right{gap:5px}.subcontract-header-action,.subcontract-header-link{align-items:center;background:#0000;border:0;border-radius:8px;color:#657383;color:var(--sub-muted);cursor:pointer;display:inline-flex;font:inherit;height:34px;justify-content:center;padding:0;transition:color .18s ease,background-color .18s ease}.subcontract-header-link{color:#17212b;color:var(--sub-text);font-size:12px;font-weight:550;gap:6px;padding:0 8px}.subcontract-header-action{width:34px}.subcontract-header-action:hover,.subcontract-header-link:hover{background:#eaf3fb;background:var(--sub-primary-soft);color:#0b5cab;color:var(--sub-primary)}.subcontract-header-action svg,.subcontract-header-link svg{font-size:20px}.subcontract-layout__header .subcontract-header-action.MuiIconButton-root{color:#657383;color:var(--sub-muted);height:34px;padding:0;width:34px}.subcontract-layout__header .subcontract-header-action.MuiIconButton-root:hover{background:#eaf3fb;background:var(--sub-primary-soft);color:#0b5cab;color:var(--sub-primary)}.subcontract-layout__header .subcontract-header-action .MuiBadge-badge{font-size:9px;font-weight:700;height:15px;min-width:15px;padding:0 4px}.subcontract-layout__header .app-bar-avatar.subcontract-header-user{border-radius:19px;gap:7px;height:38px;margin-left:3px;padding:3px 7px 3px 4px;width:auto}.subcontract-layout__header .subcontract-header-user:hover{background:#eaf3fb;background:var(--sub-primary-soft)}.subcontract-header-user__name{color:#17212b;color:var(--sub-text);font-size:12px;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subcontract-header-user__arrow{color:#657383;color:var(--sub-muted);font-size:16px!important}.subcontract-layout__header.collapsed{left:76px}.subcontract-layout__main{min-height:100vh;padding-top:84px}.subcontract-layout .sidebar:not(.collapsed) .sidebar-group-button,.subcontract-layout .sidebar:not(.collapsed) .sidebar-link{height:auto;min-height:42px}.subcontract-layout .sidebar:not(.collapsed) .sidebar-text{line-height:1.35;overflow:visible;padding:8px 0;text-overflow:clip;white-space:normal;word-break:break-word}.subcontract-layout .sidebar:not(.collapsed) .sidebar-group-button .sidebar-text{padding:6px 0}.subcontract-layout .sidebar-group+.sidebar-group{border-top:none;margin-top:0;padding-top:0}.subcontract-page{margin:0 auto;max-width:1720px;overflow:auto;padding:0 12px 12px}.subcontract-page-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:20px}.subcontract-page-header a{color:#0b5cab;color:var(--sub-primary);text-decoration:none}.subcontract-section-card{background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:10px!important;overflow:hidden}.subcontract-section-card__header{align-items:center;border-bottom:1px solid #e8edf2;display:flex;gap:16px;justify-content:space-between;min-height:28px;padding:6px 24px}.subcontract-section-card__body{padding:18px}.subcontract-main-tabs,.subcontract-nested-tabs{background:#0000;border-bottom:1px solid #dfe6ed;border-bottom:1px solid var(--sub-border);border-radius:0;box-sizing:border-box;height:42px;min-height:42px!important;padding:0}.subcontract-main-tabs .MuiTabs-flexContainer,.subcontract-main-tabs .MuiTabs-list,.subcontract-main-tabs .MuiTabs-scroller,.subcontract-nested-tabs .MuiTabs-flexContainer,.subcontract-nested-tabs .MuiTabs-list,.subcontract-nested-tabs .MuiTabs-scroller{align-items:stretch;height:42px;min-height:42px}.subcontract-main-tabs .MuiTab-root,.subcontract-nested-tabs .MuiTab-root{border-radius:0;color:#405064;font-size:12px;font-weight:700;height:42px;line-height:20px;min-height:42px!important;opacity:1;padding:0 8px;text-transform:none;transition:color .16s ease,background-color .16s ease}.subcontract-main-tabs .MuiTab-root:hover,.subcontract-nested-tabs .MuiTab-root:hover{background:#0b5cab0d;color:#0b5cab;color:var(--sub-primary)}.subcontract-main-tabs .Mui-selected,.subcontract-nested-tabs .Mui-selected{background:#0000;color:#0b5cab!important;color:var(--sub-primary)!important}.subcontract-main-tabs .MuiTabs-indicator,.subcontract-nested-tabs .MuiTabs-indicator{background-color:#0b5cab;background-color:var(--sub-primary);border-radius:999px 999px 0 0;display:block;height:2px}.subcontract-kpi-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.subcontract-kpi{background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:10px;box-shadow:0 8px 20px #0f172a0d;display:grid;overflow:hidden}.subcontract-kpi__top{align-items:center;background:#fff;display:flex;gap:12px;justify-content:space-between;min-height:44px;padding:8px 9px}.subcontract-kpi__title{align-items:center;display:flex;gap:10px;min-width:0}.subcontract-kpi__title .MuiTypography-root{color:#1f2937;font-size:13px;font-weight:700;line-height:1.25}.subcontract-kpi__icon{background:#eaf3fb;background:var(--sub-primary-soft);border-radius:50%;color:#0b5cab;color:var(--sub-primary);display:grid;flex:0 0 auto;height:38px;place-items:center;width:38px}.subcontract-kpi__icon svg{font-size:20px}.subcontract-kpi__value{color:#111827;flex:0 0 auto;font-size:26px!important;font-weight:750!important;line-height:1!important;padding-right:12px}.subcontract-kpi__bottom{grid-gap:0;background:#f8fafc;border-top:1px solid #e5e7eb;display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr))}.subcontract-kpi__bottom.single{grid-template-columns:1fr}.subcontract-kpi__bottom>div{align-content:center;display:grid;min-height:38px;padding:10px 14px}.subcontract-kpi__bottom>div+div{border-left:1px solid #e5e7eb}.subcontract-kpi__bottom span{color:#657383;color:var(--sub-muted);font-size:11px;font-weight:650;line-height:1.2}.subcontract-kpi__amount{display:block;font-size:14px;font-weight:800;line-height:1.25;margin-top:4px;min-width:0;overflow-wrap:anywhere}.subcontract-kpi__amount--contract{color:#2563eb}.subcontract-kpi__amount--paid{color:#16a34a}.subcontract-dashboard-filter{align-items:center;background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:10px;display:flex;gap:12px;margin-bottom:16px;padding:14px}.subcontract-dashboard-filter__label{color:#1f2937;font-size:13px!important;font-weight:750!important}.subcontract-dashboard-filter .MuiTextField-root{width:150px}.subcontract-dashboard-loading{display:grid;min-height:320px;place-items:center}.subcontract-dashboard-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:2fr 1fr;margin-bottom:18px}.subcontract-donut-wrap{align-items:center;display:flex;gap:38px;justify-content:center;min-height:260px}.subcontract-donut{background:conic-gradient(#2f80ed 0 38%,#27ae60 38% 60%,#f2c94c 60% 76%,#f2994a 76% 89%,#eb5757 89% 100%);border-radius:50%;height:184px;position:relative;width:184px}.subcontract-donut:after{background:#fff;border-radius:50%;content:"";inset:34px;position:absolute}.subcontract-donut__center{display:grid;inset:0;place-content:center;position:absolute;text-align:center;z-index:1}.subcontract-legend{grid-gap:10px;display:grid;gap:10px}.subcontract-legend__item{grid-gap:8px;align-items:center;display:grid;font-size:12px;gap:8px;grid-template-columns:10px minmax(120px,1fr) auto}.subcontract-legend__dot{border-radius:50%;height:8px;width:8px}.subcontract-bars{grid-gap:17px;display:grid;gap:17px;padding:14px 0}.subcontract-bar__label{display:flex;font-size:12px;justify-content:space-between;margin-bottom:6px}.subcontract-bar__track{background:#edf2f6;border-radius:5px;height:10px;overflow:hidden}.subcontract-bar__value{background:linear-gradient(90deg,#0b5cab,#49a3e7);border-radius:inherit;height:100%}.subcontract-filter-bar{align-items:center;background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:9px;display:flex;gap:12px;margin-bottom:14px;padding:14px}.subcontract-filter-bar .MuiTextField-root{min-width:210px}.subcontract-contract-list{grid-gap:10px;display:grid;gap:10px}.subcontract-list-item{grid-gap:14px;align-items:center;background:#fff;border:1px solid #e3e8ee;border-radius:9px;color:#17212b;color:var(--sub-text);cursor:pointer;display:grid;font:inherit;gap:14px;grid-template-columns:46px minmax(0,1fr) 34px;padding:15px 14px;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;width:100%}.subcontract-list-item:hover{border-color:#9dc2e7;box-shadow:0 5px 16px #2563eb14;transform:translateY(-1px)}.subcontract-list-item__icon{background:#eaf3fb;background:var(--sub-primary-soft);border-radius:8px;color:#0b5cab;color:var(--sub-primary);display:grid;height:44px;place-items:center;width:44px}.subcontract-list-item__heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.subcontract-list-item__number{color:#0b5cab;color:var(--sub-primary);font-size:12px!important;font-weight:750!important}.subcontract-list-item__name{font-size:14px!important;font-weight:700!important;margin-top:2px!important}.subcontract-list-item__chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.subcontract-list-item__meta{color:#647181;display:flex;flex-wrap:wrap;font-size:11.5px;gap:7px 18px;margin-top:9px}.subcontract-list-item__meta span{align-items:center;display:inline-flex;gap:5px}.subcontract-list-item__meta svg{color:#7a8998;font-size:15px}.subcontract-list-item__progress{margin-top:10px;max-width:420px}.subcontract-list-item__progress>div:first-child{color:#7a8794;display:flex;font-size:10px;justify-content:space-between;margin-bottom:4px}.subcontract-list-item__progress .MuiLinearProgress-root{background:#e9eef3;border-radius:5px;height:5px}.subcontract-list-item__arrow{color:#82909d!important}.subcontract-list-item:hover .subcontract-list-item__arrow{color:#0b5cab!important;color:var(--sub-primary)!important}.subcontract-list-pagination{align-items:center;display:flex;justify-content:space-between;padding-top:8px}.subcontract-list-loading{display:grid;min-height:240px;place-items:center}.subcontract-list-empty{grid-gap:6px;display:grid;gap:6px;min-height:260px;place-items:center;text-align:center}.subcontract-list-empty>svg{color:#aab6c2;font-size:48px}.subcontract-workflow-overview{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.subcontract-workflow-overview>div{align-items:center;background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:9px;display:flex;justify-content:space-between;min-height:58px;padding:10px 16px}.subcontract-workflow-overview small{color:#657383;color:var(--sub-muted);font-size:12px}.subcontract-workflow-overview strong{color:#0b5cab;color:var(--sub-primary);font-size:22px}.subcontract-workflow-card{grid-gap:14px;align-items:center;background:#fff;border:1px solid #e3e8ee;border-radius:9px;color:#17212b;color:var(--sub-text);cursor:pointer;display:grid;font:inherit;gap:14px;grid-template-columns:48px minmax(0,1fr) 24px;padding:15px;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;width:100%}.subcontract-workflow-card:hover{border-color:#9dc2e7;box-shadow:0 5px 16px #2563eb14;transform:translateY(-1px)}.subcontract-workflow-card__icon{background:#eaf3fb;border-radius:10px;color:#0b5cab;display:grid;height:46px;place-items:center;width:46px}.subcontract-workflow-card__icon.acceptances{background:#e5f6ec;color:#14733c}.subcontract-workflow-card__icon.approvals{background:#f1ebff;color:#6941c6}.subcontract-workflow-card__heading{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.subcontract-workflow-card__metrics{grid-gap:28px;display:grid;gap:28px;grid-template-columns:repeat(3,minmax(0,150px));margin-top:12px}.subcontract-workflow-card__metrics span{display:flex;flex-direction:column;gap:2px}.subcontract-workflow-card__metrics strong{font-size:15px}.subcontract-workflow-card__approval-title small,.subcontract-workflow-card__metrics small{color:#657383;color:var(--sub-muted);font-size:10.5px}.subcontract-workflow-card__progress{margin-top:10px;max-width:520px}.subcontract-workflow-card__progress>div:first-child{color:#657383;color:var(--sub-muted);display:flex;font-size:10px;justify-content:space-between;margin-bottom:4px}.subcontract-workflow-card__progress .MuiLinearProgress-root{background:#e9eef3;border-radius:6px;height:6px}.subcontract-workflow-card__progress .MuiLinearProgress-bar{border-radius:6px}.subcontract-workflow-card__latest{align-items:center;color:#657383;color:var(--sub-muted);display:flex;font-size:11px;gap:5px;margin-top:8px}.subcontract-workflow-card__latest svg{font-size:15px}.subcontract-workflow-card__approval-heading{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.subcontract-workflow-card__approval-heading>div{min-width:0}.subcontract-workflow-card__approval-name{color:#17212b;font-size:14px!important;font-weight:750!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subcontract-workflow-card__contract-reference{color:#657383;color:var(--sub-muted);font-size:11px!important;margin-top:3px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subcontract-workflow-card__approval-meta{color:#657383;color:var(--sub-muted);display:flex;flex-wrap:wrap;font-size:11px;gap:8px 22px;margin-top:10px}.subcontract-workflow-card__approval-meta span{align-items:center;display:inline-flex;gap:4px}.subcontract-workflow-card__approval-meta svg{font-size:15px}.subcontract-workflow-card__approval-meta strong{color:#344454}.subcontract-workflow-card__arrow{color:#82909d;font-size:15px!important}.subcontract-workflow-card__warning{color:#a15c00;font-size:10px!important;margin-top:7px!important}.subcontract-table-link{color:#0b5cab;color:var(--sub-primary);cursor:pointer;font-weight:700}.subcontract-detail-hero{align-items:center;background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:10px;display:flex;gap:16px;justify-content:space-between;margin-bottom:14px;padding:8px 12px}.subcontract-detail-hero__left,.subcontract-detail-hero__title{align-items:center;display:flex;gap:7px;min-width:0}.subcontract-detail-hero__title{white-space:nowrap}.subcontract-detail-hero__title .MuiTypography-root{font-size:15px;overflow:hidden;text-overflow:ellipsis}.subcontract-detail-hero__statuses{align-items:center;display:flex;flex-shrink:0;gap:7px}.subcontract-detail-hero__delete.MuiIconButton-root{background:#fff;border:1px solid color-mix(in srgb,#d32f2f 32%,#fff);height:30px;width:30px}.subcontract-detail-hero__delete.MuiIconButton-root:hover{background:#fff5f5}.subcontract-detail-content{margin-top:14px}.subcontract-workflow-detail-loading{display:grid;min-height:500px;place-items:center}.subcontract-workflow-detail-hero{grid-gap:10px;align-items:center;background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:10px;display:grid;gap:10px;grid-template-columns:34px minmax(0,1fr) auto;margin-bottom:14px;padding:12px 14px}.subcontract-workflow-detail-hero__back{border:none!important;height:32px;min-width:32px!important;padding:0!important;width:32px}.subcontract-workflow-detail-hero__back svg{font-size:20px}.subcontract-workflow-detail-hero__content{min-width:0}.subcontract-workflow-detail-hero__eyebrow{color:#657383;color:var(--sub-muted);font-size:10.5px!important;font-weight:650!important;letter-spacing:.04em;text-transform:uppercase}.subcontract-workflow-detail-hero__title{font-size:15px!important;font-weight:750!important;margin-top:2px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subcontract-workflow-detail-hero__status{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.subcontract-info-grid{grid-gap:16px 22px;display:grid;gap:16px 22px;grid-template-columns:repeat(3,minmax(0,1fr))}.subcontract-info-field label{color:#657383;color:var(--sub-muted);display:block;font-size:11px;letter-spacing:.035em;margin-bottom:4px;text-transform:uppercase}.subcontract-info-field strong{font-size:13px;font-weight:650}.subcontract-stack{grid-gap:16px;display:grid;gap:16px}.subcontract-form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.subcontract-form-grid .full{grid-column:1/-1}.subcontract-dialog .MuiDialog-paper{border-radius:12px}.subcontract-dialog__title{align-items:center;border-bottom:1px solid #dfe6ed;border-bottom:1px solid var(--sub-border);display:flex;justify-content:space-between}.subcontract-upload{background:#f8fbfe;border:1px dashed #9ab4cc;border-radius:8px;color:#0b5cab;color:var(--sub-primary);cursor:pointer;display:grid;min-height:88px;place-items:center}.subcontract-development{border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:12px!important;display:flex;flex-direction:column;justify-content:center;padding:40px;place-items:center;text-align:center}.subcontract-development span{background:#eaf3fb;background:var(--sub-primary-soft);border-radius:50%;color:#0b5cab;color:var(--sub-primary);display:grid;height:72px;margin-bottom:18px;place-items:center;width:72px}.subcontract-development span svg{font-size:38px}.subcontract-stat-filter{align-items:center;background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:8px;display:flex;gap:12px;margin-bottom:14px;padding:14px}.subcontract-statistics{grid-gap:16px;display:grid;gap:16px}.subcontract-statistics .subcontract-section-card{box-shadow:0 8px 24px #0f172a0f}.subcontract-stat-loading{display:grid;min-height:360px;place-items:center}.subcontract-stat-parent{grid-gap:13px;background:linear-gradient(135deg,#f1f8ff,#f6f2ff);border:1px solid #dbe8f5;border-radius:8px;display:grid;gap:13px;padding:16px}.subcontract-stat-parent__label{align-items:center;background:#ffffffb8;border:1px solid #0b5cab2e;border-radius:8px;color:#0b5cab;color:var(--sub-primary);display:inline-flex;font-size:12px;font-weight:750;gap:7px;padding:5px 9px;width:-webkit-fit-content;width:fit-content}.subcontract-stat-summary-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.subcontract-stat-summary-card{grid-gap:12px;background:#fff;border:1px solid #e5edf5;border-radius:8px;box-shadow:0 5px 16px #0f172a0d;display:grid;gap:12px;min-height:34px;padding:16px}.subcontract-stat-summary-card__header{align-items:center;display:flex;gap:9px}.subcontract-stat-summary-card__header span{background:#eaf3fb;background:var(--sub-primary-soft);border-radius:8px;color:#0b5cab;color:var(--sub-primary);display:grid;height:34px;place-items:center;width:34px}.subcontract-stat-summary-card__header .MuiTypography-root{color:#17212b;font-size:13px;font-weight:750}.subcontract-stat-summary-card__rows{grid-gap:2px;display:grid;gap:2px}.subcontract-stat-lines>div,.subcontract-stat-row{align-items:center;display:flex;gap:16px;justify-content:space-between}.subcontract-stat-lines span,.subcontract-stat-row span{color:#657383;color:var(--sub-muted);font-size:12px}.subcontract-stat-lines strong,.subcontract-stat-row strong{color:#17212b;font-size:13px;font-weight:750;text-align:right}.subcontract-stat-children,.subcontract-stat-list{grid-gap:12px;display:grid;gap:12px}.subcontract-stat-children{background:#f5f8fb;border:1px solid #dfe7ef;border-radius:8px;margin-top:16px;padding:14px}.subcontract-stat-children__header{align-items:center;display:flex;gap:16px;justify-content:space-between}.subcontract-stat-children__title{color:#17212b;font-size:14px!important;font-weight:750!important}.subcontract-stat-children__subtitle{color:#657383;color:var(--sub-muted);font-size:11.5px!important;margin-top:2px!important}.subcontract-stat-children__header>span{background:#fff;border:1px solid #d7e1eb;border-radius:8px;color:#344454;flex:0 0 auto;font-size:12px;font-weight:700;padding:5px 10px}.subcontract-stat-contract{background:#fff;border:1px solid #dfe6ed;border:1px solid var(--sub-border);border-radius:8px;box-shadow:0 3px 12px #0f172a0a;overflow:hidden}.subcontract-stat-contract__header{align-items:flex-start;border-bottom:1px solid #e8edf2;display:flex;gap:8px;justify-content:space-between;padding:8px 16px}.subcontract-stat-contract__title{color:#17212b;font-size:14px!important;font-weight:750!important}.subcontract-stat-contract__meta{color:#657383;color:var(--sub-muted);font-size:11px!important;margin-top:3px!important}.subcontract-stat-contract__body{grid-gap:0;display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr))}.subcontract-stat-block{grid-gap:13px;display:grid;gap:13px;padding:16px}.subcontract-stat-block+.subcontract-stat-block{border-left:1px solid #e8edf2}.subcontract-stat-block__title{align-items:center;color:#0b5cab;color:var(--sub-primary);display:flex;gap:8px}.subcontract-stat-block__title .MuiTypography-root{color:#17212b;font-size:13px;font-weight:750}.subcontract-stat-lines{grid-gap:2px;display:grid;gap:2px}.subcontract-stat-progress{grid-gap:8px;display:grid;gap:8px}.subcontract-stat-progress__track{background:#eef3f7;border-radius:6px;display:flex;height:12px;overflow:hidden;width:100%}.subcontract-stat-progress__track span{height:100%;min-width:2px}.subcontract-stat-progress__legend{color:#657383;color:var(--sub-muted);display:flex;flex-wrap:wrap;font-size:11px;gap:8px 14px}.subcontract-stat-progress__legend span{align-items:center;display:inline-flex;gap:5px}.subcontract-stat-progress__legend i{border-radius:50%;height:8px;width:8px}@media (max-width:1100px){.subcontract-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subcontract-dashboard-grid{grid-template-columns:1fr}.subcontract-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subcontract-stat-contract__body,.subcontract-stat-summary-grid{grid-template-columns:1fr}.subcontract-stat-block+.subcontract-stat-block{border-left:0;border-top:1px solid #e8edf2}}@media (max-width:760px){.subcontract-layout__content{margin-left:76px}.subcontract-layout__header{left:76px}.subcontract-header-link span,.subcontract-header-user__name{display:none}.subcontract-page{padding:15px}.subcontract-page-header{flex-direction:column}.subcontract-detail-hero{align-items:flex-start;flex-direction:column}.subcontract-workflow-detail-hero{grid-template-columns:34px minmax(0,1fr)}.subcontract-workflow-detail-hero__status{grid-column:2;justify-content:flex-start}.subcontract-workflow-detail-hero__title{white-space:normal}.subcontract-detail-hero__title{flex-wrap:wrap;white-space:normal}.subcontract-detail-hero__statuses{padding-left:47px}.subcontract-form-grid,.subcontract-info-grid,.subcontract-kpi-grid,.subcontract-workflow-overview{grid-template-columns:1fr}.subcontract-filter-bar{flex-wrap:wrap}.subcontract-dashboard-filter{align-items:stretch;flex-direction:column}.subcontract-dashboard-filter .MuiTextField-root{width:100%}.subcontract-stat-filter{align-items:stretch;flex-direction:column}.subcontract-stat-filter .MuiTextField-root{min-width:0;width:100%}.subcontract-stat-contract__header{flex-direction:column}.subcontract-stat-children__header{align-items:flex-start;flex-direction:column}.subcontract-list-item,.subcontract-workflow-card{grid-template-columns:40px minmax(0,1fr)}.subcontract-workflow-card__icon{height:40px;width:40px}.subcontract-workflow-card__arrow{display:none!important}.subcontract-workflow-card__metrics{gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.subcontract-workflow-card__approval-heading{flex-direction:column;gap:7px}.subcontract-list-item__arrow{display:none!important}.subcontract-list-item__heading{flex-direction:column}.subcontract-list-item__chips{justify-content:flex-start}.subcontract-list-pagination{align-items:flex-start;flex-direction:column;gap:10px}.subcontract-form-grid .full{grid-column:auto}}
/*# sourceMappingURL=main.a61d13aa.css.map*/