@charset "UTF-8";@font-face{font-family:Prompt;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Cy_gIfWMuQ5Q.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Cy_gIZmMuQ5Q.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Prompt;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Cy_gIZ2MuQ5Q.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Prompt;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Cy_gIaWMu.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W__XJnvUD7dzB2KdNodVkI.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W__XJnvUD7dzB2Kb9odVkI.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Prompt;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W__XJnvUD7dzB2KbtodVkI.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Prompt;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W__XJnvUD7dzB2KYNod.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Ck_kIfWMuQ5Q.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Ck_kIZmMuQ5Q.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Prompt;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Ck_kIZ2MuQ5Q.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Prompt;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Ck_kIaWMu.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Cv_4IfWMuQ5Q.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Cv_4IZmMuQ5Q.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Prompt;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Cv_4IZ2MuQ5Q.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Prompt;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2Cv_4IaWMu.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2C2_8IfWMuQ5Q.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2C2_8IZmMuQ5Q.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Prompt;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2C2_8IZ2MuQ5Q.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Prompt;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/prompt/v12/-W_8XJnvUD7dzB2C2_8IaWMu.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.p-inputtext,.p-select,.p-multiselect,.p-datepicker-input,.p-textarea{font-family:Prompt,sans-serif!important;font-size:14px!important;width:100%!important}.p-select,.p-multiselect{width:100%!important}.p-inputtext{height:38px}.p-select .p-select-label,.p-multiselect .p-multiselect-label{padding-top:7px;padding-bottom:7px}.p-multiselect-chip{font-family:Prompt,sans-serif;font-size:12px}.p-select-overlay,.p-multiselect-overlay,.p-datepicker-panel{font-family:Prompt,sans-serif;font-size:14px}.p-datepicker-panel .p-datepicker-day.p-disabled{opacity:.18!important;cursor:not-allowed!important;pointer-events:none}.p-inputnumber,.p-inputnumber .p-inputtext{width:100%}p-inputnumber.effort-input .p-inputnumber-input,p-inputnumber.effort-input .p-inputtext{height:30px!important;padding:3px 8px!important;font-size:13px!important;text-align:center!important;width:70px!important}:root{--primary: #fdc117;--primary-dark: #e5ad00;--primary-light: #ffe066;--primary-glow: rgba(253, 193, 23, .15);--dark: #2b2b2b;--dark-light: #3d3d3d;--secondary: #066aab;--bg: #f5f5f5;--bg-surface: #ffffff;--bg-elevated: #fafafa;--border: #e5e5e5;--border-light: #f0f0f0;--text-primary: #262626;--text-secondary: #525252;--text-muted: #a3a3a3;--green: #22c55e;--green-bg: rgba(34, 197, 94, .1);--blue: #3b82f6;--blue-bg: rgba(59, 130, 246, .1);--orange: #f59e0b;--orange-bg: rgba(245, 158, 11, .1);--red: #ef4444;--red-bg: rgba(239, 68, 68, .1);--purple: #a855f7;--purple-bg: rgba(168, 85, 247, .1);--radius-sm: 6px;--radius: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);--shadow: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.05);--shadow-md: 0 10px 15px rgba(0,0,0,.07), 0 4px 6px rgba(0,0,0,.05);--shadow-glow: 0 4px 12px rgba(253, 193, 23, .35)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Prompt,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text-primary);min-height:100vh;line-height:1.6}a{color:inherit;text-decoration:none}button{font-family:Prompt,sans-serif;cursor:pointer;border:none;outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f0f0f0}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a3a3a3}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}.page-inner{padding:0 24px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.page-title{font-size:22px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.page-subtitle{font-size:13px;color:var(--text-muted);margin:0}.btn-add{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--primary);border:none;border-radius:var(--radius-sm);color:#1a1a1a;font-family:Prompt,sans-serif;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .15s}.btn-add:hover{opacity:.88}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--primary);border:none;border-radius:var(--radius-sm);color:#1a1a1a;font-family:Prompt,sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-primary:hover{opacity:.88}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{padding:8px 16px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:Prompt,sans-serif;font-size:13px;cursor:pointer;transition:background .15s}.btn-ghost:hover{background:var(--bg)}.btn-danger{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:transparent;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);color:#ef4444;font-family:Prompt,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s}.btn-danger:hover{background:#ef444414;border-color:#ef4444}.action-btn{padding:5px;background:none;border:1px solid transparent;border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;transition:all .15s}.action-btn:hover{background:var(--bg);border-color:var(--border);color:var(--text-primary)}.action-btn.danger:hover{background:#ef444414;border-color:#ef444440;color:#f87171}.tab-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border);border-radius:20px;font-size:13px;font-weight:500;font-family:Prompt,sans-serif;color:var(--text-secondary);background:var(--bg-surface);cursor:pointer;transition:all .15s}.tab-btn:hover{border-color:var(--primary);color:var(--text-primary)}.tab-btn.active{background:var(--primary);border-color:var(--primary);color:#000;font-weight:600}.tab-count{font-size:11px;font-weight:600;background:#00000014;border-radius:10px;padding:1px 6px}.tab-btn.active .tab-count{background:#00000026}.chip{padding:2px 8px;border-radius:20px;font-size:11px;background:#fdc11726;color:var(--primary);border:1px solid rgba(253,193,23,.25)}.badge-admin{padding:2px 8px;border-radius:20px;font-size:11px;background:#ef44441f;color:#f87171;border:1px solid rgba(239,68,68,.25)}.perm-chip{padding:2px 7px;border-radius:4px;font-size:11px;background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.role-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;width:fit-content}.role-badge.role-pm{background:#fef3c7;color:#92400e}.role-badge.role-pc{background:#dbeafe;color:#1e40af}.role-badge.role-ba{background:#d1fae5;color:#065f46}.role-badge.role-sa{background:#ede9fe;color:#4c1d95}.role-badge.role-pg{background:#fee2e2;color:#991b1b}.role-badge.role-qc{background:#fce7f3;color:#9d174d}.role-badge.role-ux-ui{background:#e0f2fe;color:#075985}.avatar-circle{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0}.avatar-square{border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.size-48{width:48px;height:48px;font-size:20px}.size-36{width:36px;height:36px;font-size:14px}.size-30{width:30px;height:30px;font-size:12px}.field-group{display:flex;flex-direction:column;gap:4px}.field-label{font-size:12px;font-weight:600;color:var(--text-muted);display:block}.required{color:#f87171}.field-input{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:Prompt,sans-serif;box-sizing:border-box;outline:none;transition:border-color .15s}.field-input:focus{border-color:var(--primary)}select.field-input{cursor:pointer}textarea.field-input{resize:vertical}.checkbox-list{display:flex;flex-direction:column;gap:8px}.checkbox-item{display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:13px;color:var(--text-primary)}.checkbox-item input[type=checkbox]{width:14px;height:14px;margin-top:2px;accent-color:var(--primary);flex-shrink:0}.form-error{font-size:12px;color:#f87171;margin:0;padding:8px 12px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm)}.search-box{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted)}.search-box input{border:none;background:none;outline:none;font-size:13px;font-family:Prompt,sans-serif;color:var(--text-primary);flex:1}.search-box input::placeholder{color:var(--text-muted)}.table-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:11px 16px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border)}.data-table td{padding:12px 16px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-elevated)}.user-cell{display:flex;align-items:center;gap:10px}.chips{display:flex;flex-wrap:wrap;gap:4px}.row-actions{display:flex;gap:4px;align-items:center}.empty-row{text-align:center;color:var(--text-muted);padding:32px!important}.dialog-overlay{position:fixed;inset:0;background:#0000008c;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:440px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #0006}.dialog--wide{max-width:560px}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.dialog-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0}.close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;border-radius:4px;transition:color .15s}.close-btn:hover{color:var(--text-primary)}.dialog-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.dialog-footer{display:flex;gap:10px;justify-content:flex-end;padding:16px 20px;border-top:1px solid var(--border);flex-shrink:0}.loading-state{display:flex;align-items:center;gap:12px;padding:48px 0;color:var(--text-muted);font-size:13px}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 24px;color:var(--text-muted);font-size:13px;text-align:center}.progress-track{height:6px;background:var(--border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;transition:width .3s}.role-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.role-card-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.role-icon{width:36px;height:36px;border-radius:8px;background:#fdc1171a;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.role-info{flex:1;min-width:0}.role-name{font-size:14px;font-weight:600;color:var(--text-primary)}.role-desc{font-size:12px;color:var(--text-muted);margin-top:2px}.perm-count{font-size:12px;color:var(--text-muted);margin-bottom:8px}.perm-chips{display:flex;flex-wrap:wrap;gap:4px}.perm-groups{display:flex;flex-direction:column;gap:16px}.perm-group{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.perm-group-title{padding:8px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border)}.perm-group .checkbox-item{padding:8px 12px;border-bottom:1px solid var(--border);margin:0}.perm-group .checkbox-item:last-child{border-bottom:none}.perm-label{display:flex;flex-direction:column;gap:1px}.perm-name{font-size:12px;font-weight:500;color:var(--text-primary)}.perm-desc{font-size:11px;color:var(--text-muted)}.text-muted{color:var(--text-muted)}.text-primary{color:var(--text-primary)}
