:root{--color-header-bg:#1f3a5f;--color-header-text:#fff;--color-page-bg:#f3f4f6;--color-surface:#fff;--color-border:#d1d5db;--color-border-light:#e5e7eb;--color-text-primary:#111827;--color-text-secondary:#374151;--color-text-muted:#6b7280;--color-btn-add:#16a34a;--color-btn-add-hover:#15803d;--color-btn-export:#2563eb;--color-btn-export-hover:#1d4ed8;--color-btn-danger:#dc2626;--color-btn-danger-hover:#b91c1c;--color-focus-ring:#2563eb33;--color-status-active-bg:#dcfce7;--color-status-active-text:#166534;--color-status-pending-bg:#fef9c3;--color-status-pending-text:#854d0e;--color-status-closed-bg:#f3f4f6;--color-status-closed-text:#374151;--color-status-delayed-bg:#fee2e2;--color-status-delayed-text:#991b1b;--grid-max-width:1440px;--grid-columns:12;--grid-margin:24px;--grid-gutter:16px;--height-header:60px;--height-page-title:64px;--height-summary-strip:60px;--height-footer-bar:60px;--height-table-header-row:30px;--height-table-row:28px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--font-family:"Segoe UI", Arial, sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:22px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--shadow-card:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-dropdown:0 4px 12px #0000001f;--transition-fast:.15s ease;--transition-base:.2s ease}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-family);margin:0}p{margin:0}button{font-family:var(--font-family);cursor:pointer;color:inherit;background:0 0;border:none;padding:0}input,select,textarea{font-family:var(--font-family);font-size:var(--font-size-base)}a{color:var(--color-btn-export);text-decoration:none}a:hover{text-decoration:underline}.ui-table,table[class$=-table]{font-size:12px}.ui-table th,table[class$=-table] th{vertical-align:middle;color:#4b5563;letter-spacing:.02em;font-weight:600;line-height:1.25;padding:5px 10px!important;font-size:12px!important}.ui-table td,table[class$=-table] td{vertical-align:middle;color:#1f2937;font-weight:400;line-height:1.3;padding:4px 10px!important;font-size:12px!important}.ui-table .pl-state-cell,.ui-table .ts-state-cell,.ui-table .hm-state-cell,.ui-table .cl-state-cell,.ui-table .emp-state-cell,.ui-table .prj-state-cell,.ui-table .shf-state-cell,.ui-table .dep-state-cell,.ui-table .rol-state-cell,.ui-table .loc-state-cell,.ui-table .pcr-state-cell,.ui-table [class*=state-cell],table[class$=-table] [class*=state-cell]{padding:20px 10px!important}.ui-table button,table[class$=-table] button,[class$=-table-wrap] .btn-edit,[class$=-table-wrap] .btn-open,[class$=-table-wrap] .btn-download-predetailing,[class$=-table-wrap] [class*=btn-edit],[class$=-table-wrap] [class*=btn-delete],[class$=-table-wrap] [class*=btn-assign],[class$=-table-wrap] .btn-edit-row,[class$=-table-wrap] .btn-delete-row,[class$=-table-wrap] .btn-open{border-radius:4px;gap:3px;min-height:0;line-height:1.2;padding:3px 8px!important;font-size:12px!important}.ui-table .pcr-badge,.ui-table [class*=status],.ui-table .hm-status,.ui-table .emp-badge,[class$=-table-wrap] span[style*=borderRadius],[class$=-table-wrap] span[style*=border-radius]{line-height:1.2;padding:2px 8px!important;font-size:11px!important}[class$=-table-wrap] select,.ui-table select{min-height:28px;height:28px!important;padding:2px 24px 2px 8px!important;font-size:12px!important}[class$=-table-wrap] .ts-inline-select-wrap select{min-height:26px;height:26px!important}.ui-table .ts-row-del,[class$=-table-wrap] button[title=Remove\ row]{width:24px;height:24px;padding:2px!important}.data-table__header-row{height:auto}.data-table__th{font-weight:600;line-height:1.25;padding:5px 10px!important;font-size:12px!important}.data-table__row{height:auto}.data-table__td{font-size:12px;line-height:1.3;padding:4px 10px!important}.data-table__state-cell{padding:20px!important}.data-table .status-badge{padding:2px 8px;font-size:10px}.ts-modal,.hm-modal,.loc-modal,.dep-modal,.rol-modal,.shf-modal,.prj-modal,.emp-modal,.cl-modal,.pl-modal,.pcr-modal{cursor:grab}.ts-modal input,.ts-modal select,.ts-modal textarea,.ts-modal button,.hm-modal input,.hm-modal select,.hm-modal textarea,.hm-modal button,.loc-modal input,.loc-modal select,.loc-modal textarea,.loc-modal button,.dep-modal input,.dep-modal select,.dep-modal textarea,.dep-modal button,.rol-modal input,.rol-modal select,.rol-modal textarea,.rol-modal button,.shf-modal input,.shf-modal select,.shf-modal textarea,.shf-modal button,.prj-modal input,.prj-modal select,.prj-modal textarea,.prj-modal button,.emp-modal input,.emp-modal select,.emp-modal textarea,.emp-modal button,.cl-modal input,.cl-modal select,.cl-modal textarea,.cl-modal button,.pl-modal input,.pl-modal select,.pl-modal textarea,.pl-modal button,.pcr-modal input,.pcr-modal select,.pcr-modal textarea,.pcr-modal button{cursor:auto}.ts-modal__grid,.pcr-add-form__grid,.pl-modal__grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px 16px;display:grid}.cl-form-grid,.emp-form-grid,.prj-form-grid,.shf-form-grid,.hm-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px 16px;display:grid}.hm-modal__body{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px 16px;display:grid}.hm-modal__body>.hm-form-grid{display:contents}.hm-modal__ftr{grid-column:1/-1}.ff-field,.dep-field,.rol-field,.loc-field,.shf-field,.prj-field,.emp-field,.ts-modal__field,.pl-modal__field,.pcr-add-form__field,.hm-overlay .hm-field,.hm-modal .hm-field{flex-direction:column;gap:5px;min-width:0;margin-bottom:0;display:flex}.hm-toolbar .hm-field,.hm-toolbar__filters .hm-field{flex-direction:column;gap:5px;display:flex}.ff-label,.dep-field__label,.rol-field__label,.loc-field__label,.shf-field__label,.prj-field__label,.emp-field__label,.hm-field__label,.ts-modal__field>span,.pl-modal__field>span,.pcr-add-form__field>span{color:#374151;margin:0;font-size:12px;font-weight:600}.ff-input,.dep-field__input,.rol-field__input,.loc-field__input,.shf-field__input,.prj-field__input,.emp-field__input,.hm-field__input,.hm-field__select,.hm-field__textarea,.ts-modal__field input,.ts-modal__field select,.pl-modal__field input,.pl-modal__field select,.pcr-add-form__field input,.pcr-add-form__field select{box-sizing:border-box;width:100%;min-width:0}.ff-hint,.ff-error-msg,.loc-field__hint,.hm-field__hint{margin:0}:is(.ff-field--span2,.ts-modal__field--full,.pl-modal__field--full,.pcr-add-form__field--full,.hm-field--full,.hm-field:has(.hm-field__textarea)){grid-column:1/-1}.emp-field--status{align-items:flex-start}.ts-modal{max-width:820px}.cl-modal{max-width:680px}.hm-modal{max-width:640px}.hm-modal--lg{max-width:780px}.dep-modal,.rol-modal,.loc-modal{width:420px;max-width:95vw}.shf-modal{max-width:560px}@media (width<=720px){.ts-modal__grid,.pcr-add-form__grid,.pl-modal__grid,.hm-modal__body{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.ts-modal__grid,.pcr-add-form__grid,.pl-modal__grid,.cl-form-grid,.emp-form-grid,.prj-form-grid,.shf-form-grid,.hm-form-grid,.hm-modal__body{grid-template-columns:1fr}}[class$=-table-wrap],.pcr-table-wrap,.est-table-wrap,.data-table-wrap{box-sizing:border-box;width:100%;max-width:100%;overflow-x:auto}.pl-content,.cl-content,.emp-content,.prj-content,.hm-content,.loc-content,.dep-content,.rol-content,.shf-content{width:100%;max-width:100%;margin-left:0;margin-right:0;padding-left:0;padding-right:0}.pl-title-section,.cl-title-section,.emp-title-section,.prj-title-section,.hm-title-section,.loc-title-section,.dep-title-section,.rol-title-section,.shf-title-section{padding-left:20px;padding-right:20px}.cl-card,.emp-card,.prj-card,.hm-card,.loc-card,.dep-card,.rol-card,.shf-card{width:100%;max-width:100%;box-shadow:none;border-left:none;border-right:none;border-radius:0;margin-left:0;margin-right:0}.pl-tabs-row,.pl-filters,.cl-toolbar,.emp-toolbar,.prj-toolbar,.hm-tabs,.hm-toolbar,.shf-toolbar,.dep-toolbar,.rol-toolbar,.loc-toolbar{padding-left:16px;padding-right:16px}.pl-footer,.cl-footer,.emp-footer,.prj-footer,.pcr-footer{box-sizing:border-box;border-left:none;border-right:none;border-radius:0;width:100%}.cl-list-error,.emp-list-error,.prj-list-error,.shf-list-error,.hm-list-error,.pl-error{padding-left:16px;padding-right:16px}.login-page{--brand-blue:#2878c8;--brand-blue-hover:#226eb9;--brand-blue-focus-ring:#2878c838;--brand-blue-disabled:#8eb8e0;flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;min-height:100dvh;display:grid}.login-left{background-color:#c8dff0;background-position:50%;background-repeat:no-repeat;background-size:cover;min-width:0;min-height:0}.login-right{box-sizing:border-box;background:#f8faff;justify-content:center;align-items:center;min-width:0;min-height:0;padding:24px 32px;display:flex;overflow-y:auto}.login-form-container{width:100%;max-width:460px}.login-logo{text-align:center;margin:0 0 12px}.login-logo-img{max-width:200px;height:auto;display:inline-block}.login-divider{background:#e5e7eb;height:1px;margin:0 0 14px}.login-title{color:#1a2e4a;text-align:center;margin:0 0 4px;font-family:Segoe UI,Arial,sans-serif;font-size:22px;font-weight:700}.login-subtitle{color:#6b7280;text-align:center;margin:0 0 14px;font-size:13px}.login-form{box-sizing:border-box;background:#fff;border:1.5px solid #d1d5db;border-radius:12px;flex-direction:column;width:100%;padding:20px;display:flex}.form-group{flex-direction:column;gap:5px;padding-bottom:12px;display:flex}.form-group+.form-group{border-top:1px solid #e5e7eb;padding-top:12px}.form-label{color:#374151;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.label-icon{color:#4b5563;align-items:center;display:flex}.form-input{color:#111827;box-sizing:border-box;background:#fff;border:1.5px solid #d1d5db;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-input::placeholder{color:#9ca3af}.form-input:focus{border-color:var(--brand-blue);box-shadow:0 0 0 3px var(--brand-blue-focus-ring)}.password-wrapper{align-items:center;display:flex;position:relative}.password-wrapper .form-input{padding-right:40px}.password-toggle{cursor:pointer;color:#6b7280;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute;right:10px}.password-toggle:hover{color:#374151}.form-row{border-top:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding-top:12px;display:flex}.remember-me{color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:flex}.remember-me input[type=checkbox]{width:15px;height:15px;accent-color:var(--brand-blue);cursor:pointer}.forgot-link{color:var(--brand-blue);font-size:13px;font-weight:500;text-decoration:none}.forgot-link:hover{color:var(--brand-blue-hover);text-decoration:underline}.forgot-link--static{color:#6b7280;cursor:default}.forgot-link--static:hover{color:#6b7280;text-decoration:none}.btn-signin{background:var(--brand-blue);color:#fff;border:1px solid var(--brand-blue);letter-spacing:.3px;cursor:pointer;border-radius:8px;width:100%;margin-top:12px;padding:10px;font-size:15px;font-weight:700;transition:background .2s,border-color .2s,transform .1s}.btn-signin:hover{background:var(--brand-blue-hover);border-color:var(--brand-blue-hover)}.btn-signin:active{transform:scale(.99)}.btn-signin:disabled{background:var(--brand-blue-disabled);border-color:var(--brand-blue-disabled);cursor:not-allowed;transform:none}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0 0 4px;padding:7px 10px;font-size:12px}.login-divider-row{color:#9ca3af;letter-spacing:.5px;align-items:center;gap:10px;margin:16px 0;font-size:11px;font-weight:600;display:flex}.login-divider-row:before,.login-divider-row:after{content:"";background:#e5e7eb;flex:1;height:1px}.login-google{justify-content:center;display:flex}.login-support{color:#6b7280;text-align:center;margin-top:12px;font-size:12px}.support-link{color:var(--brand-blue);font-weight:500;text-decoration:none}.support-link:hover{color:var(--brand-blue-hover);text-decoration:underline}@media (width<=900px){.login-page{grid-template-rows:auto 1fr;grid-template-columns:1fr}.login-left{width:100%;min-height:clamp(200px,42vw,320px)}.login-right{align-items:flex-start;padding:24px 20px 32px}.login-form-container{max-width:480px;margin:0 auto}}@media (width<=480px){.login-left{min-height:clamp(180px,50vw,260px)}.login-right{padding:20px 16px 28px}.login-logo-img{max-width:160px}}.app-header{color:#fff;z-index:220;box-sizing:border-box;background:#1759a0;align-items:center;width:100%;height:60px;padding:0 18px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #00000014}.app-header__logo{cursor:pointer;min-width:210px;color:inherit;text-align:left;background:0 0;border:none;flex-shrink:0;align-items:center;gap:12px;padding:0;font-family:inherit;display:flex}.app-header__logo:hover,.app-header__logo:focus,.app-header__logo:focus-visible,.app-header__logo:active{background:0 0;border-color:#0000}.app-header__logo-icon{flex-shrink:0;width:42px;height:42px;display:block}.app-header__brand{letter-spacing:0;color:#fff;font-family:Segoe UI,Arial,sans-serif;font-size:22px;font-weight:700;line-height:1}.app-header__nav{align-items:center;height:100%;margin-left:22px;display:flex}.app-header__nav-item{color:#ffffffe6;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-left:1px solid #ffffff26;align-items:center;height:100%;padding:0 22px;font-family:Segoe UI,Arial,sans-serif;font-size:16px;font-weight:600;display:inline-flex}.app-header__nav-item:hover{background:#ffffff1a}.app-header__nav-item--active{color:#fff;background:#ffffff24}.app-header__user{color:#fffffff5;align-items:center;gap:10px;margin-left:auto;font-size:15px;font-weight:600;display:flex}.app-header__greet{white-space:nowrap;font-weight:700}.app-header__user-divider{opacity:.75}.app-header__logout{color:#fff;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:15px;font-weight:700}.app-header__logout:hover,.app-header__logout:focus,.app-header__logout:focus-visible,.app-header__logout:active{background:0 0;border-color:#0000;text-decoration:underline}.cpd-overlay{z-index:500;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.cpd-dialog{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%;max-width:420px;box-shadow:var(--shadow-dropdown);box-sizing:border-box;padding:22px 24px}.cpd-title{font-family:var(--font-family);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 16px}.cpd-field{margin-bottom:14px}.cpd-field__label{font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:6px;display:block}.cpd-field__input{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;height:38px;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);box-sizing:border-box;padding:0 40px 0 12px}.cpd-password-wrap{position:relative}.cpd-password-toggle{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.cpd-requirements{font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:-6px 0 14px;padding:0;list-style:none}.cpd-requirements li{padding-left:18px;line-height:1.6;position:relative}.cpd-requirements li:before{content:"✕";color:var(--color-btn-danger);position:absolute;left:0}.cpd-requirements li.cpd-requirement--met{color:var(--color-text-primary)}.cpd-requirements li.cpd-requirement--met:before{content:"✓";color:var(--color-btn-add)}.cpd-error{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-btn-danger);margin:0 0 14px}.cpd-success{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 20px}.cpd-actions{justify-content:flex-end;gap:10px;display:flex}.cpd-btn{border-radius:var(--radius-md);min-width:92px;min-height:38px;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);padding:0 16px}.cpd-btn:disabled{opacity:.65;cursor:not-allowed}.cpd-btn--primary{background:var(--color-btn-export);color:#fff;border:1px solid var(--color-btn-export)}.cpd-btn--primary:hover:not(:disabled){filter:brightness(.95)}.cpd-btn--secondary{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.cpd-btn--secondary:hover:not(:disabled){background:var(--color-page-bg)}.dashboard-page{color:#1e3a5f;background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.dashboard-content{box-sizing:border-box;flex:1;justify-content:center;align-items:center;padding:48px 28px 64px;display:flex}.dashboard-welcome{text-align:center;max-width:36rem;animation:.45s ease-out dashboard-fade-in}.dashboard-welcome__lead{letter-spacing:.12em;text-transform:uppercase;color:#2878c8;margin:0 0 10px;font-size:13px;font-weight:600}.dashboard-welcome__title{letter-spacing:-.02em;color:#15365a;margin:0 0 18px;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;line-height:1.2}.dashboard-welcome__body{color:#4a6688;margin:0;font-size:1.0625rem;line-height:1.65}@keyframes dashboard-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.custom-field-cell{min-width:100px}.custom-field-cell__control{color:#111827;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:4px;width:100%;min-width:88px;height:28px;padding:2px 8px;font-family:inherit;font-size:12px}.custom-field-cell__control:focus{border-color:#2878c8;outline:none;box-shadow:0 0 0 2px #2878c826}.custom-field-cell__control:disabled{color:#6b7280;background:#f8fafc}.custom-field-cell__bool{color:#374151;cursor:pointer;align-items:center;gap:6px;font-size:12px;display:inline-flex}.custom-field-cell__bool input{cursor:pointer;width:15px;height:15px}.custom-field-cell--saving{opacity:.65;pointer-events:none}.custom-field-cell__err{color:#dc2626;margin-top:2px;font-size:10px}.col-customize-modal{max-width:920px}.col-customize__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.col-customize__hint{color:#6b7280;margin:0;font-size:12px}.col-customize__add{color:#1a56a2;cursor:pointer;background:#eff6ff;border:1px solid #2878c8;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600}.col-customize__add:hover{background:#dbeafe}.col-customize__add:disabled{opacity:.5;cursor:not-allowed}.col-customize-table-wrap{border:1px solid #e5e7eb;border-radius:6px;overflow-x:auto}.col-customize-table{border-collapse:collapse;width:100%;font-size:12px}.col-customize-table th{text-align:left;color:#1a3a6e;white-space:nowrap;background:#eef4fb;border-bottom:1px solid #d1e3f8;padding:6px 8px;font-weight:600}.col-customize-table td{vertical-align:middle;border-bottom:1px solid #e5e7eb;padding:6px 8px}.col-customize-table tr:last-child td{border-bottom:none}.col-customize-table input,.col-customize-table select{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:4px;width:100%;min-width:0;height:32px;padding:0 8px;font-family:inherit;font-size:12px}.col-customize-table__options{flex-direction:column;gap:4px;display:flex}.col-customize-table__options input{font-size:11px}.col-customize-table__order{gap:4px;display:flex}.col-customize-table__order button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:4px;width:28px;height:28px;padding:0;font-size:12px;line-height:1}.col-customize-table__order button:disabled{opacity:.4;cursor:not-allowed}.col-customize-table__remove{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:4px;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:600}.col-customize-table__remove:hover{background:#fecaca}.col-customize__error{color:#dc2626;margin:10px 0 0;font-size:12px}.col-customize__empty{text-align:center;color:#9ca3af;padding:24px;font-size:13px}.title-group-header{justify-content:center;align-items:center;gap:10px;display:flex}.title-group-header__text{flex:none}.title-group-header__actions{gap:4px;display:inline-flex}.title-group-header__icon-btn{color:#fff;cursor:pointer;background:#ffffff2e;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:inline-flex}.title-group-header__icon-btn:hover:not(:disabled){background:#ffffff52}.title-group-header__icon-btn:disabled{opacity:.5;cursor:not-allowed}.title-group-edit td{background:#5b9bd5}.title-group-edit{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.title-group-edit__name{border:none;border-radius:4px;min-width:180px;padding:4px 8px;font-size:12px}.title-group-edit__no{border:none;border-radius:4px;width:56px;padding:4px 6px;font-size:12px}.title-group-edit__btn{color:#1f4e78;cursor:pointer;background:#fff;border:none;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:700}.title-group-edit__btn--secondary{color:#fff;background:#ffffff40}.title-group-edit__error{color:#fef08a;font-size:11px;font-weight:600}.drag-handle{cursor:grab;color:#9ca3af;-webkit-user-select:none;user-select:none;padding:0 6px}.drag-handle:active{cursor:grabbing}tr.tr-drawing-row--drag-over{outline:2px dashed var(--brand-blue,#2563eb);outline-offset:-2px}.pcr-page{--brand-blue:#2878c8;--brand-blue-hover:#226eb9;background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.pcr-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:0 0 36px}.pcr-section-head{background:linear-gradient(#f0f6fc 0%,#fff 100%);border-bottom:1px solid #e5eaf3;align-items:center;gap:12px;padding:16px 20px;display:flex}.pcr-section-head__title{color:#1a2e4a;letter-spacing:.02em;margin:0;font-size:20px;font-weight:700}.pcr-back-btn{color:#2878c8;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:color .15s}.pcr-back-btn:hover{color:#1a56a2;text-decoration:underline}.pcr-summary-cards{flex-wrap:wrap;align-items:stretch;gap:16px;padding:16px 20px 4px;display:flex}.pcr-summary-card{text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:6px;min-width:110px;padding:12px 16px;display:flex}.pcr-summary-card--compact{min-width:100px;padding:10px 14px}.pcr-summary-card__label{color:#374151;white-space:nowrap;font-size:12px;font-weight:800}.pcr-summary-card__value{color:#1a2e4a;white-space:nowrap;font-size:20px;font-weight:800}.pcr-summary-card--detailed{flex:2.2 1 0;justify-content:center;gap:4px;min-width:320px;padding:10px 20px}.pcr-summary-card--detailed .pcr-summary-card__label{text-align:center;font-size:13px}.pcr-summary-card--plain{justify-content:center;min-width:150px}.pcr-summary-card__rows{color:#374151;flex-direction:column;align-items:center;gap:4px;font-size:13px;font-weight:700;display:flex}.pcr-summary-card__rows strong{color:#1a2e4a}.pcrlog-cards-row{flex-wrap:wrap;align-items:stretch;gap:16px;padding:12px 4px 20px;display:flex}.pcrlog-collapse-btn{color:#2878c8;cursor:pointer;background:#eef2f7;border:1px solid #d7e0ea;border-radius:6px;align-self:center;width:28px;height:28px;font-size:12px}.pcrlog-expand-btn{color:#2878c8;cursor:pointer;background:#eef2f7;border:1px solid #d7e0ea;border-radius:6px;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:600}.pcrlog-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;gap:6px;min-width:200px;padding:14px 20px;display:flex}.pcrlog-card--estimated{text-align:center;flex:1;justify-content:center;align-items:center}.pcrlog-card__label{color:#1a2e4a;text-align:center;font-size:13px;font-weight:700}.pcrlog-card__big{color:#1a2e4a;font-size:28px;font-weight:800}.pcrlog-card--detailed{flex:2;justify-content:center;min-width:380px}.pcrlog-card__detailed-body{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 20px;max-width:100%;display:flex}.pcrlog-card__grades{color:#374151;grid-template-columns:repeat(4,max-content);gap:4px 8px;font-size:13px;display:grid}.pcrlog-card__grades span{color:#6b7280}.pcrlog-card__grades strong{white-space:nowrap;justify-self:start;padding-right:6px}.pcrlog-card__total{color:#1a2e4a;white-space:nowrap;text-align:center;font-size:13px;font-weight:700}.pcrlog-card--stats{flex:1;justify-content:center;align-items:center;min-width:200px}.pcrlog-plain-stats{color:#374151;grid-template-columns:repeat(2,auto auto);gap:6px 10px;font-size:13px;display:grid}.pcrlog-plain-stats span{color:#6b7280}.pcrlog-plain-stats strong{color:#1a2e4a;justify-self:end;padding-right:18px}.pcrlog-toolbar-row{justify-content:space-between;align-items:center;gap:12px;padding:4px 4px 14px;display:flex}.pcrlog-toolbar-row__left{align-items:center;gap:12px;display:flex}.pcrlog-search{border:1px solid #d7e0ea;border-radius:6px;flex:0 320px;height:34px;padding:0 10px;font-size:13px}.pcr-card{box-shadow:none;background:0 0;border:none;border-radius:0;overflow:hidden}.pcr-tabs-row{background:0 0;border:none;border-bottom:1px solid #d7deea;border-radius:0;justify-content:space-between;align-items:flex-end;padding:0;display:flex}.pcr-tabs{align-items:flex-end;gap:2px;display:flex}.pcr-tab{color:#375274;cursor:pointer;background:#fff;border:1px solid #d7deea;border-bottom:none;border-radius:6px 6px 0 0;padding:10px 22px;font-size:15px;font-weight:700;position:relative}.pcr-tab:hover:not(.pcr-tab--active){background:#f3f7fc}.pcr-tab--active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.pcr-tab--active:after{content:"";border-left:9px solid #0000;border-right:9px solid #0000;border-top:9px solid var(--brand-blue);width:0;height:0;position:absolute;bottom:-9px;left:50%;transform:translate(-50%)}.pcr-tab-actions{align-items:center;gap:9px;padding-bottom:7px;display:flex}.pcr-export-btn{margin-right:16px}.pcr-co-subtabs-row{justify-content:space-between;align-items:center;gap:12px;margin:12px 0 2px;display:flex}.pcr-co-subtabs{background:#fff;border:1px solid #d7deea;border-radius:6px;align-items:center;gap:0;display:inline-flex;overflow:hidden}.pcr-co-subtab{color:#445973;cursor:pointer;background:#f8fbff;border:none;border-right:1px solid #d7deea;padding:8px 16px;font-size:12px;font-weight:700}.pcr-co-subtab:last-child{border-right:none}.pcr-co-subtab:hover{background:#eef4fb}.pcr-co-subtab--active{background:var(--brand-blue);color:#fff;position:relative}.pcr-co-subtab--active:after{content:"";border-left:6px solid #0000;border-right:6px solid #0000;border-top:6px solid var(--brand-blue);width:0;height:0;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.pcr-project-list{position:relative}.pcr-modal--project-list{max-width:640px}.pcr-project-list-modal__body{flex-direction:column;gap:12px;padding:16px 22px 22px;display:flex}.pcr-project-list__search{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:5px;height:36px;margin:0;padding:0 10px;font-size:13px}.pcr-project-list__search:focus{border-color:var(--brand-blue);outline:none}.pcr-project-list-modal__table-wrap{max-height:420px;overflow-y:auto}.pcr-project-list-modal__row{cursor:pointer}.pcr-project-list-modal__row:hover{background:#f1f5f9}.btn-add-main{background:var(--brand-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 18px;font-size:14px;font-weight:700}.btn-add-main:hover,.btn-filter:hover,.btn-edit:hover{background:var(--brand-blue-hover)}.pcr-filters{background:0 0;border-bottom:1px solid #e5e7eb;border-left:none;border-right:none;flex-wrap:wrap;align-items:center;gap:9px;padding:18px 16px 10px;display:flex}.filter-select,.filter-date{color:#374151;background:#fff;border:1px solid #cbd5e1;border-radius:6px;min-width:130px;height:34px;padding:0 10px;font-size:14px}.filter-actions{align-items:center;margin-left:auto;display:flex}.btn-filter{background:var(--brand-blue);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-right:8px;padding:8px 20px;font-size:14px;font-weight:700}.filter-search-wrap{align-items:center;display:flex;position:relative}.filter-search-input{color:#374151;background:#fff;border:1px solid #cbd5e1;border-radius:6px;min-width:130px;height:34px;padding:0 26px 0 10px;font-size:14px}.filter-search-clear{color:#9ca3af;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:16px;line-height:1;position:absolute;right:6px}.filter-search-clear:hover{color:#374151}.btn-import{color:#1f4f86;cursor:pointer;background:#fff;border:1px solid #b7c8dd;border-radius:6px;margin-left:8px;padding:8px 16px;font-size:13px;font-weight:700}.btn-import:hover{background:#f1f6fd}.pcr-table-wrap{background:#fff;border:1px solid #d9e2ef;border-top:none;width:100%;margin-top:0;overflow-x:auto}.pcr-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:700px;font-size:12px}.pcr-table thead tr{background:#dce8f7;border-bottom:2px solid #c8d8ee}.pcr-table th{color:#1a3a6e;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.th-r{text-align:right}.th-action{text-align:center;width:100px}.td-action{text-align:center;white-space:nowrap}.th-unit{color:#6b7280;font-size:13px;font-weight:400}.row-actions{align-items:center;gap:2px;display:inline-flex}.row-icon-btn{color:#475569;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.row-icon-btn:hover:not(:disabled){color:#1a2e4a;background:#e2e8f0}.row-icon-btn:disabled{opacity:.35;cursor:not-allowed}.row-icon-btn--danger:hover:not(:disabled){color:#dc2626;background:#fee2e2}.pcr-table tbody tr{border-bottom:1px solid #c8d8ee}.pcr-table td{color:#374151;padding:4px 10px;font-size:12px}.pcr-table tr.tr-void td{color:red}.td-drawing-no{color:#1a56a2;font-weight:800}.td-drawing-no--btn{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;padding:0}.td-drawing-no--btn:hover{text-decoration:underline}.td-cc-cell{justify-content:center;align-items:center;gap:6px;display:flex}.td-drawings-cell__toggle{color:#2878c8;cursor:pointer;background:#eef2f7;border:1px solid #d7e0ea;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:11px;line-height:18px}.td-drawings-cell__list{text-align:left;font:inherit;margin:0;padding:0;list-style:none}.td-drawings-cell__list li{font:inherit}.td-r{text-align:right}.tr-title-group td{color:#fff;letter-spacing:.5px;background:#5b9bd5;padding:5px 12px;font-size:12px;font-weight:700;text-align:center!important}.title-group-header__text{color:#fff}.btn-edit{background:var(--brand-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;align-items:center;gap:3px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.pcr-footer{box-sizing:border-box;background:#fff;border:1px solid #d9e2ef;border-top:none;border-radius:0 0 6px 6px;align-items:center;gap:12px;width:100%;padding:12px 16px 10px;display:flex;position:relative}.pcr-entry-info{color:#6b7280;flex:1;font-size:14px}.pcr-pagination{align-items:center;gap:4px;display:flex}.page-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;min-width:32px;height:32px;padding:0 10px;font-size:13px;font-weight:600}.btn-customize{color:#374151;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:7px;padding:8px 14px;font-family:inherit;font-size:14px;font-weight:600;display:flex;position:relative;top:12px}.btn-customize:hover:not(:disabled){color:#1a56a2;background:#f0f6fc;border-color:#2878c8}.btn-customize:disabled{opacity:.45;cursor:not-allowed}.pcr-stat{align-items:center;gap:6px;margin-left:12px;display:flex}.pcr-stat__label{color:#374151;white-space:nowrap;font-size:14px;font-weight:700}.pcr-stat__value{color:#2878c8;text-align:center;border-bottom:1px solid #cbd5e1;min-width:32px;padding:0 4px 2px;font-size:14px}.pcr-modal-overlay{z-index:400;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.pcr-modal{background:#fff;border:1px solid #cfd8e3;border-radius:10px;width:100%;max-width:980px;max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 60px #0f172a33}.pcr-modal__head{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.pcr-modal__title{color:#1a2e4a;margin:0;font-size:18px;font-weight:700}.pcr-modal__close{color:#64748b;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:26px;line-height:1}.pcr-modal__close:hover{color:#1e293b}.prodlog-modal{max-width:900px}.prodlog-head{background:#4650c4;border-bottom:none;border-radius:10px 10px 0 0;padding:18px 24px}.prodlog-head .pcr-modal__title{color:#fff;font-size:20px}.prodlog-head .pcr-modal__close{color:#fff}.prodlog-head .pcr-modal__close:hover{color:#e0e2fb}.prodlog-form{padding:20px 24px 22px}.prodlog-panel{background:#fff;border:1px solid #d8dce4;border-radius:8px;margin-bottom:16px;padding:16px 20px}.prodlog-panel:last-of-type{margin-bottom:0}.prodlog-grid{gap:16px 24px;display:grid}.prodlog-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.prodlog-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.prodlog-grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}.prodlog-field{flex-direction:column;gap:6px;min-width:0;display:flex}.prodlog-field--full{grid-column:1/-1}.prodlog-field--span3{grid-column:span 3}.prodlog-field--span4{grid-column:span 4}.prodlog-field>span{color:#1f2937;font-size:13px;font-weight:600}.prodlog-field em{color:#dc2626;margin-right:2px;font-style:normal}.prodlog-field input,.prodlog-field select{color:#111827;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:6px;height:38px;padding:0 10px;font-size:14px}.prodlog-field input:focus,.prodlog-field select:focus{border-color:#4650c4;outline:none;box-shadow:0 0 0 3px #4650c429}.prodlog-field--muted input,.prodlog-field--muted select{background:#eef0f4}.prodlog-field input[readOnly]{color:#4b5563;cursor:not-allowed;background:#eef0f4}.prodlog-error{color:#dc2626;margin:14px 0 0;font-size:13px}.prodlog-footer{justify-content:flex-end;gap:12px;margin-top:18px;display:flex}.prodlog-btn{letter-spacing:.3px;text-transform:uppercase;cursor:pointer;background:#fff;border-radius:6px;min-width:96px;height:38px;padding:0 18px;font-size:13px;font-weight:700}.prodlog-btn:disabled{opacity:.6;cursor:not-allowed}.prodlog-btn--primary{color:#4650c4;border:1.5px solid #4650c4}.prodlog-btn--primary:hover:not(:disabled){background:#f0f1fc}.prodlog-btn--secondary{color:#4b5563;border:1.5px solid #9aa4b2}.prodlog-btn--secondary:hover:not(:disabled){background:#f8fafc}.prodlog-btn--danger{color:#dc2626;border:1.5px solid #dc2626}.prodlog-btn--danger:hover:not(:disabled){background:#fef2f2}.prodlog-footer--between{justify-content:space-between}@media (width<=720px){.prodlog-grid--3,.prodlog-grid--4,.prodlog-grid--5{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.prodlog-grid--3,.prodlog-grid--4,.prodlog-grid--5{grid-template-columns:1fr}.prodlog-field--full{grid-column:1}}.pcr-add-form{padding:18px 22px 20px}.pcr-add-form__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;display:grid}.pcr-add-form__field--full{grid-column:1/-1}.pcr-add-form__field span{color:#344154;letter-spacing:.15px;text-align:left;font-size:12px;font-weight:700}.pcr-add-form__field input,.pcr-add-form__field select{color:#111827;box-sizing:border-box;background:#fdfefe;border:1px solid #bcc9da;border-radius:6px;height:40px;padding:0 11px;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.pcr-add-form__field input:hover,.pcr-add-form__field select:hover{background:#fff;border-color:#a9bbd2}.pcr-add-form__field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364738b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}.pcr-add-form__field input:focus,.pcr-add-form__field select:focus{border-color:var(--brand-blue);background:#fff;outline:none;box-shadow:0 0 0 3px #2878c829}.pcr-add-form__error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:14px 0 0;padding:10px 12px;font-size:13px}.pcr-add-form__loading{color:#6b7280;margin:0 0 16px;font-size:14px}.pcr-add-form__input--readonly{color:#4b5563;cursor:not-allowed;background:#f3f4f6}.pcr-modal__actions{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:14px;display:flex}.pcr-modal__btn{cursor:pointer;border-radius:6px;min-width:92px;min-height:38px;padding:0 16px;font-size:13px;font-weight:700}.pcr-modal__btn:disabled{opacity:.65;cursor:not-allowed}.pcr-modal__btn--primary{background:var(--brand-blue);color:#fff;border:1px solid var(--brand-blue)}.pcr-modal__btn--primary:hover:not(:disabled){background:var(--brand-blue-hover);border-color:var(--brand-blue-hover)}.pcr-modal__btn--secondary{color:#374151;background:#fff;border:1px solid #cbd5e1}.pcr-modal__btn--secondary:hover:not(:disabled){background:#f8fafc}.pcr-modal__actions--edit{justify-content:space-between;align-items:center}.pcr-modal__actions-right{gap:10px;display:flex}.pcr-modal__btn--danger{color:#b91c1c;background:#fff;border:1px solid #fca5a5}.pcr-modal__btn--danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171}@media (width<=1100px){.pcr-add-form__grid{grid-template-columns:1fr 1fr}}@media (width<=560px){.pcr-add-form__grid{grid-template-columns:1fr}.pcr-add-form__field--full{grid-column:1}.pcr-add-form__field{gap:6px}}.est-view{padding:20px 0 24px}.est-view__title{color:#1a2e4a;margin:0 0 14px;font-size:22px;font-weight:800}.est-summary{background:#dce8f7;border:1px solid #c8d8ee;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px 0;margin-bottom:12px;padding:12px 20px;display:flex}.est-summary__group{align-items:center;gap:8px;padding:0 20px 0 0;display:flex}.est-summary__label{color:#374151;white-space:nowrap;font-size:14px;font-weight:600}.est-summary__val{color:#1a2e4a;text-align:center;background:#fff;border:1px solid #94a3b8;border-radius:4px;min-width:32px;padding:2px 10px;font-size:14px;font-weight:700}.est-summary__text{color:#374151;font-size:14px;font-weight:500}.est-summary__sep{background:#94a3b8;flex-shrink:0;width:1px;height:22px;margin:0 20px 0 0}.est-summary__status{color:#16a34a;font-size:14px;font-weight:700}.est-info-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.est-info-row__text{color:#374151;font-size:14px}.est-info-row__text strong{color:#1a2e4a}.est-search-wrap{color:#6b7280;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:7px;min-width:180px;padding:6px 12px;display:flex}.est-search-input{color:#374151;background:0 0;border:none;outline:none;width:100%;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.est-search-input::placeholder{color:#9ca3af}.est-table-wrap{background:#fff;border:1px solid #c8d8ee;border-radius:6px 6px 0 0;margin-bottom:0;overflow-x:auto}.est-table{border-collapse:collapse;width:100%;min-width:700px;font-size:14px}.est-table thead tr{background:#dce8f7;border-bottom:2px solid #c8d8ee}.est-table th{color:#1a3a6e;text-align:left;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.est-th-title{min-width:220px}.est-th-r{text-align:right}.est-table tbody tr{border-bottom:1px solid #e5e7eb}.est-table tbody tr:last-child{border-bottom:none}.est-tr-alt{background:#f5f8fd}.est-table tbody tr:hover{background:#f5f8fc}.est-table td{color:#374151;vertical-align:middle;padding:4px 10px;font-size:12px}.est-td-ref{color:#c026d3;font-weight:700}.est-td-r{text-align:right}.est-empty{text-align:center;color:#9ca3af;padding:32px 0;font-size:13px}.est-badge{color:#fff;white-space:nowrap;background:#2878c8;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-block}.est-btn-edit{color:#2878c8;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 6px;display:inline-flex}.est-btn-edit:hover{background:#e8f1fb}.est-total-row{color:#374151;background:#f0f5fb;border:1px solid #c8d8ee;border-top:none;border-radius:0 0 4px 4px;margin-bottom:16px;padding:9px 14px;font-size:13px}.est-total-row strong{color:#1a2e4a;font-weight:700}.est-action-bar{background:#eef3fb;border:1px solid #c8d8ee;border-radius:6px 6px 0 0;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.est-btn-add{color:#fff;cursor:pointer;white-space:nowrap;background:#16a34a;border:1px solid #16a34a;border-radius:5px;padding:8px 18px;font-size:13px;font-weight:700}.est-btn-add:hover{background:#15803d;border-color:#15803d}.est-btn-filter{color:#374151;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:5px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.est-btn-filter:hover{background:#f3f7fc}.est-search-wrap--bar{min-width:160px}.est-export-row{justify-content:flex-end;padding:12px 0 4px;display:flex}.est-btn-export{color:#fff;cursor:pointer;background:#2878c8;border:1px solid #2878c8;border-radius:5px;align-items:center;gap:7px;padding:9px 22px;font-size:14px;font-weight:700;display:inline-flex}.est-btn-export:hover{background:#226eb9;border-color:#226eb9}.md-page{background:#edf1f8;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.md-header{background:#1a56a2;flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 28px;display:flex}.md-header__left{align-items:center;gap:12px;display:flex}.md-header__left--link{cursor:pointer;background:0 0;border:none;padding:0}.md-header__logo-icon{flex-shrink:0;width:42px;height:42px;display:block}.md-header__brand{color:#fff;letter-spacing:0;font-size:22px;font-weight:700;line-height:1}.md-header__left-sep{background:#fff6;width:1px;height:24px;margin:0 2px 0 4px}.md-header__title{color:#fff;letter-spacing:.2px;font-size:20px;font-weight:700}.md-header__right{align-items:center;gap:18px;display:flex}.md-header__bell{cursor:pointer;opacity:.9;background:0 0;border:none;align-items:center;padding:4px;transition:opacity .15s;display:flex}.md-header__bell:hover{opacity:1}.md-header__user{cursor:pointer;align-items:center;gap:10px;display:flex}.md-header__name{color:#ffffffeb;font-size:14px;font-weight:600}.md-header__user-wrap{position:relative}.md-header__user-btn{cursor:pointer;color:#fff;background:#ffffff1f;border:1px solid #fff3;border-radius:24px;align-items:center;gap:9px;padding:5px 12px 5px 5px;font-family:Segoe UI,Arial,sans-serif;transition:background .15s;display:flex}.md-header__user-btn:hover{background:#fff3}.md-header__avatar{letter-spacing:.5px;color:#fff;background:#ffffff40;border:1.5px solid #ffffff80;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:flex}.md-header__chevron{color:#ffffffb3;align-items:center;transition:transform .2s;display:flex}.md-header__chevron--open{transform:rotate(180deg)}.md-header__dropdown{z-index:300;background:#fff;border-radius:8px;min-width:210px;animation:.15s ddFadeIn;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000002e,0 2px 6px #0000001a}@keyframes ddFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.md-header__dd-info{flex-direction:column;gap:2px;padding:14px 16px 12px;display:flex}.md-header__dd-name{color:#1a2e4a;font-size:14px;font-weight:700}.md-header__dd-email{color:#6b7280;font-size:12px}.md-header__dd-divider{background:#e5e7eb;height:1px}.md-header__dd-item{cursor:pointer;text-align:left;color:#374151;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:11px 16px;font-family:Segoe UI,Arial,sans-serif;font-size:14px;transition:background .12s;display:flex}.md-header__dd-item:hover{background:#f5f8ff}.md-header__dd-item--logout{color:#dc2626}.md-header__dd-item--logout:hover{background:#fef2f2}.md-inbox-tag{color:#fff;letter-spacing:.5px;background:#2d2d42;border-radius:0 0 6px;align-self:flex-start;padding:5px 14px;font-size:11px;font-weight:700;display:inline-block}.md-content{box-sizing:border-box;flex:1;width:100%;max-width:1320px;margin:0 auto;padding:20px 40px 40px}.md-modules{grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:36px;display:grid}.md-card{cursor:pointer;text-align:left;background:#fff;border:none;border-radius:8px;align-items:center;gap:22px;width:100%;padding:22px 24px;font-family:Segoe UI,Arial,sans-serif;transition:box-shadow .2s,transform .15s;display:flex;box-shadow:0 1px 5px #0000001a,0 1px 2px #0000000f}.md-card:hover{background:#f8fafc;box-shadow:0 2px 8px #0000000f}.md-card--linked{cursor:pointer}.md-card--linked .md-card__title{color:#1a56a2}.md-card__icon{flex-shrink:0;justify-content:center;align-items:center;width:68px;height:68px;display:flex}.md-card__icon svg{width:68px;height:68px}.md-card__body{flex:1;min-width:0}.md-card__title{color:#1a2e4a;margin-bottom:6px;font-size:19px;font-weight:700}.md-card__divider{border:none;border-top:1.5px solid #e5e7eb;margin:8px 0}.md-card__desc{color:#6b7280;margin:0;font-size:13px;line-height:1.4}.md-recent-row{grid-template-columns:1fr 1fr;gap:48px;margin-bottom:32px;display:grid}.md-recent__heading{color:#1a2e4a;border-bottom:2px solid #d1d5db;margin:0 0 10px;padding-bottom:10px;font-size:16px;font-weight:700}.md-recent__list{flex-direction:column;display:flex}.md-recent__item{color:#374151;border-bottom:1px solid #eaeef4;align-items:center;gap:12px;padding:11px 0;font-size:14px;display:flex}.md-recent__item span{flex:1}.md-recent__empty{color:#9ca3af;margin:0;padding:14px 0;font-size:13px}.md-recent__table{border-collapse:collapse;width:100%;margin-bottom:10px;font-size:14px}.md-recent__th{text-align:left;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e5e7eb;padding:6px 8px 8px;font-size:12px;font-weight:700}.md-recent__th--num,.md-recent__td--num{text-align:center;width:52px}.md-recent__tr:nth-child(2n){background:#f7f9fc}.md-recent__td{color:#374151;border-bottom:1px solid #eaeef4;padding:9px 8px}.md-view-all{color:#1a56a2;white-space:nowrap;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;text-decoration:none}.md-view-all:hover{background:0 0;text-decoration:underline}.md-search-section{border-top:1.5px solid #d1d5db;justify-content:center;padding-top:20px;display:flex}.md-search-bar{background:#fff;border:1.5px solid #d1d5db;border-radius:8px;align-items:center;width:62%;max-width:720px;display:flex;overflow:hidden;box-shadow:0 1px 4px #00000012}.md-search__label{color:#374151;white-space:nowrap;background:#fafbfc;border-right:1.5px solid #e5e7eb;flex-shrink:0;padding:13px 18px;font-size:15px;font-weight:700}.md-search__input{color:#374151;background:0 0;border:none;outline:none;flex:1;padding:13px 16px;font-family:Segoe UI,Arial,sans-serif;font-size:14px}.md-search__input::placeholder{color:#9ca3af}.md-search__btn{cursor:pointer;background:#1a56a2;border:none;flex-shrink:0;justify-content:center;align-items:center;height:48px;padding:0 22px;transition:background .15s;display:flex}.md-search__btn:hover{background:#154488}.ff-field{margin-bottom:0}.ff-field--span2{grid-column:1/-1}.ff-label{color:#374151;letter-spacing:.1px;font-size:12px;font-weight:600}.ff-req{color:#dc2626;margin-left:2px}.ff-input{color:#111827;box-sizing:border-box;appearance:none;background:#fff;border:1.5px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;transition:border-color .15s,box-shadow .15s}.ff-input:focus{border-color:#1a56a2;box-shadow:0 0 0 3px #1a56a21a}.ff-input::placeholder{color:#9ca3af}select.ff-input{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.ff-textarea{resize:vertical;min-height:80px;line-height:1.5}.ff-input--readonly{color:#6b7280;cursor:default;background:#f3f4f6;border-color:#e5e7eb}.ff-input--disabled{color:#9ca3af;cursor:not-allowed;background:#f9fafb}.ff-input--error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.ff-hint{color:#6b7280;margin:0;font-size:11px}.ff-error-msg{color:#ef4444;margin:0;font-size:11px}.cl-page{background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.cl-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:0 0 40px}.cl-title-section{flex-direction:column;align-items:center;padding:20px 0 18px;display:flex;position:relative}.cl-back-btn{color:#1a56a2;cursor:pointer;background:0 0;border:none;padding:0;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:color .15s;position:absolute;top:22px;left:0}.cl-back-btn:hover{color:#154488}.cl-title{color:#1a2e4a;letter-spacing:-.3px;margin:0 0 8px;font-size:34px;font-weight:800}.cl-subtitle-row{align-items:center;gap:14px;display:flex}.cl-sub-line{background:#94a3b8;width:70px;height:1px}.cl-sub-text{color:#6b7280;letter-spacing:5px;font-size:12px;font-weight:500}.cl-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 6px #00000017}.cl-toolbar{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.cl-toolbar__left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cl-search-wrap{color:#6b7280;background:#fff;border:1.5px solid #d1d5db;border-radius:6px;align-items:center;gap:8px;min-width:280px;padding:7px 12px;transition:border-color .15s;display:flex}.cl-search-wrap:focus-within{border-color:#1a56a2;box-shadow:0 0 0 3px #1a56a21a}.cl-search-input{color:#374151;background:0 0;border:none;outline:none;width:100%;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.cl-search-input::placeholder{color:#9ca3af}.cl-btn-filter{color:#fff;cursor:pointer;background:#1a56a2;border:none;border-radius:6px;padding:7px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:background .15s}.cl-btn-filter:hover{background:#154488}.cl-btn-clear{color:#374151;cursor:pointer;background:#e2e8f0;border:none;border-radius:6px;padding:7px 16px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:background .15s}.cl-btn-clear:hover{background:#cbd5e1}.cl-btn-add{color:#fff;cursor:pointer;white-space:nowrap;background:#1a56a2;border:none;border-radius:6px;padding:8px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700;transition:background .15s}.cl-btn-add:hover{background:#154488}.cl-list-error{color:#dc2626;background:#fef2f2;border-bottom:1px solid #fecaca;margin:0;padding:10px 20px;font-size:13px}.cl-table-wrap{border-top:1px solid #e5e7eb;width:100%;overflow-x:auto}.cl-table{border-collapse:collapse;width:100%;font-size:12px}.cl-table thead tr{background:#eef3fb;border-bottom:2px solid #d1d5db}.cl-table th{color:#1a3a6e;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.cl-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .1s}.cl-table tbody tr:hover{background:#f5f8fc!important}.cl-table td{color:#374151;padding:4px 10px;font-size:12px}.td-id{color:#1a56a2;font-weight:700}.td-name{color:#1a2e4a;font-weight:600}.td-email{color:#4b5563;font-size:13px}.cl-actions{justify-content:center;align-items:center;gap:8px;display:flex}.cl-state-cell{text-align:center;color:#6b7280;padding:48px 0;font-size:14px}.cl-footer{justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.cl-entry-info{color:#6b7280;font-size:13px}.cl-pagination{align-items:center;gap:4px;display:flex}.cl-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.cl-modal{background:#fff;border-radius:10px;flex-direction:column;width:100%;max-width:560px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000040}.cl-modal__hdr{background:#1a56a2;flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.cl-modal__title{color:#fff;margin:0;font-size:17px;font-weight:700}.cl-modal__close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s;display:flex}.cl-modal__close:hover{background:#ffffff47}.cl-modal__body{flex-direction:column;flex:1;padding:22px 24px 0;display:flex;overflow-y:auto}.cl-section-label{text-transform:uppercase;letter-spacing:1px;color:#6b7280;border-bottom:1.5px solid #e5e7eb;margin:0 0 14px;padding-bottom:8px;font-size:11px;font-weight:700}.cl-form-grid{grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:4px;display:grid}.cl-modal__ftr{background:#fafbfc;border-top:1.5px solid #e5e7eb;flex-shrink:0;margin-top:auto;padding:16px 24px}.cl-form-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0 0 12px;padding:8px 12px;font-size:13px}.cl-modal__actions{justify-content:flex-end;gap:10px;display:flex}.cl-modal--confirm{max-width:420px}.cl-confirm__body{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 28px 20px;display:flex}.cl-confirm__title{color:#1a2e4a;margin:0;font-size:18px;font-weight:700}.cl-confirm__msg{color:#4b5563;margin:0;font-size:14px;line-height:1.6}.cl-confirm__actions{justify-content:center;gap:12px;padding:16px 24px 24px;display:flex}.cl-modal__body::-webkit-scrollbar{width:6px}.cl-modal__body::-webkit-scrollbar-track{background:#f3f4f6}.cl-modal__body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.confirm-dialog-overlay{z-index:500;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%;max-width:420px;box-shadow:var(--shadow-dropdown);box-sizing:border-box;padding:22px 24px}.confirm-dialog__title{font-family:var(--font-family);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 10px}.confirm-dialog__message{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-secondary);margin:0 0 20px;line-height:1.5}.confirm-dialog__actions{justify-content:flex-end;gap:10px;display:flex}.confirm-dialog__btn{border-radius:var(--radius-md);min-width:92px;min-height:38px;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);padding:0 16px}.confirm-dialog__btn:disabled{opacity:.65;cursor:not-allowed}.confirm-dialog__btn--primary{background:var(--color-btn-danger);color:#fff;border:1px solid var(--color-btn-danger)}.confirm-dialog__btn--primary:hover:not(:disabled){background:var(--color-btn-danger-hover);border-color:var(--color-btn-danger-hover)}.confirm-dialog__btn--secondary{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.confirm-dialog__btn--secondary:hover:not(:disabled){background:var(--color-page-bg)}.emp-page{background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.emp-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:0 0 40px}.emp-title-section{flex-direction:column;align-items:center;padding:20px 0 18px;display:flex;position:relative}.emp-back-btn{color:#1a56a2;cursor:pointer;background:0 0;border:none;padding:0;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:color .15s;position:absolute;top:22px;left:0}.emp-back-btn:hover{color:#154488}.emp-title{color:#1a2e4a;letter-spacing:-.3px;margin:0 0 8px;font-size:34px;font-weight:800}.emp-subtitle-row{align-items:center;gap:14px;display:flex}.emp-sub-line{background:#94a3b8;width:70px;height:1px}.emp-sub-text{color:#6b7280;letter-spacing:5px;font-size:12px;font-weight:500}.emp-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 6px #00000017}.emp-toolbar{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.emp-toolbar__left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.emp-search-wrap{color:#6b7280;background:#fff;border:1.5px solid #d1d5db;border-radius:6px;align-items:center;gap:8px;min-width:260px;padding:7px 12px;transition:border-color .15s;display:flex}.emp-search-wrap:focus-within{border-color:#1a56a2;box-shadow:0 0 0 3px #1a56a21a}.emp-search-input{color:#374151;background:0 0;border:none;outline:none;width:100%;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.emp-search-input::placeholder{color:#9ca3af}.emp-select{color:#374151;appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 8px center no-repeat;border:1.5px solid #d1d5db;border-radius:6px;padding:7px 28px 7px 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;transition:border-color .15s}.emp-select:focus{border-color:#1a56a2;outline:none}.emp-btn-filter{color:#fff;cursor:pointer;background:#1a56a2;border:none;border-radius:6px;padding:7px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:background .15s}.emp-btn-filter:hover{background:#154488}.emp-btn-clear{color:#374151;cursor:pointer;background:#e2e8f0;border:none;border-radius:6px;padding:7px 16px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:background .15s}.emp-btn-clear:hover{background:#cbd5e1}.emp-btn-add{color:#fff;cursor:pointer;white-space:nowrap;background:#1a56a2;border:none;border-radius:6px;padding:8px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700;transition:background .15s}.emp-btn-add:hover{background:#154488}.emp-list-error{color:#dc2626;background:#fef2f2;border-bottom:1px solid #fecaca;margin:0;padding:10px 20px;font-size:13px}.emp-table-wrap{width:100%;overflow-x:auto}.emp-table{border-collapse:collapse;width:100%;font-size:12px}.emp-table thead tr{background:#eef3fb;border-bottom:2px solid #d1d5db}.emp-table th{color:#1a3a6e;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.emp-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .1s}.emp-table tbody tr:hover{background:#f5f8fc!important}.emp-table td{color:#374151;padding:4px 10px;font-size:12px}.td-emp-no{color:#1a56a2;font-weight:700}.td-email{color:#4b5563}.emp-name-cell{align-items:center;gap:10px;display:flex}.emp-avatar{color:#fff;letter-spacing:.5px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:flex}.emp-badge{color:#fff;white-space:nowrap;border-radius:20px;padding:3px 12px;font-size:12px;font-weight:600;display:inline-block}.badge--active{background:#22c55e}.badge--inactive{background:#ef4444}.btn-edit-row{color:#fff;cursor:pointer;white-space:nowrap;background:#1a56a2;border:none;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.btn-edit-row:hover{background:#154488}.emp-state-cell{text-align:center;color:#6b7280;padding:48px 0;font-size:14px}.emp-footer{justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.emp-entry-info{color:#6b7280;font-size:13px}.emp-pagination{align-items:center;gap:4px;display:flex}.page-btn:hover:not(.page-btn--active){color:#1a56a2;border-color:#1a56a2}.page-btn--active{color:#fff;background:#1a56a2;border-color:#1a56a2;font-weight:700}.emp-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.emp-modal{background:#fff;border-radius:10px;flex-direction:column;width:100%;max-width:680px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000040}.emp-modal__hdr{background:#1a56a2;flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.emp-modal__title{color:#fff;margin:0;font-size:17px;font-weight:700}.emp-modal__close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s;display:flex}.emp-modal__close:hover{background:#ffffff47}.emp-modal__body{flex-direction:column;flex:1;gap:0;padding:22px 24px;display:flex;overflow-y:auto}.emp-section-label{text-transform:uppercase;letter-spacing:1px;color:#6b7280;border-bottom:1.5px solid #e5e7eb;margin:0 0 14px;padding-bottom:8px;font-size:11px;font-weight:700}.emp-section-label+.emp-section-label{margin-top:20px}.emp-form-grid{grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:18px;display:grid}.emp-field{margin-bottom:0}.emp-field__label{color:#374151;font-size:12px;font-weight:600}.emp-req{color:#dc2626;margin-left:2px}.emp-field__input{color:#111827;background:#fff;border:1.5px solid #d1d5db;border-radius:6px;outline:none;padding:8px 12px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;transition:border-color .15s,box-shadow .15s}.emp-field__input:focus{border-color:#1a56a2;box-shadow:0 0 0 3px #1a56a21a}.emp-field__input--readonly{color:#6b7280;cursor:default;background:#f3f4f6}.emp-password-wrap{align-items:center;display:flex;position:relative}.emp-password-wrap .emp-field__input{box-sizing:border-box;width:100%;padding-right:38px}.emp-password-toggle{cursor:pointer;color:#6b7280;background:0 0;border:none;padding:0;display:flex;position:absolute;right:10px}.emp-password-toggle:hover{color:#374151}.emp-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.emp-toggle input{display:none}.emp-toggle__track{background:#d1d5db;border-radius:12px;flex-shrink:0;width:42px;height:24px;transition:background .2s;position:relative}.emp-toggle input:checked+.emp-toggle__track{background:#22c55e}.emp-toggle__thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.emp-toggle input:checked~.emp-toggle__track .emp-toggle__thumb{left:21px}.emp-toggle__label{color:#374151;font-size:13px;font-weight:500}.emp-modal__ftr{background:#fafbfc;border-top:1.5px solid #e5e7eb;flex-shrink:0;padding:16px 24px}.emp-form-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0 0 12px;padding:8px 12px;font-size:13px}.emp-modal__actions{justify-content:flex-end;gap:10px;display:flex}.emp-modal__body::-webkit-scrollbar{width:6px}.emp-modal__body::-webkit-scrollbar-track{background:#f3f4f6}.emp-modal__body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.btn-delete-row{color:#dc2626;cursor:pointer;white-space:nowrap;background:#fef2f2;border:1.5px solid #fecaca;border-radius:5px;align-items:center;gap:4px;padding:5px 12px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.btn-delete-row:hover{color:#fff;background:#dc2626;border-color:#dc2626}.btn-delete-confirm{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:8px 24px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700;transition:background .15s}.emp-modal--confirm{max-width:440px}.emp-confirm__body{padding:24px 24px 8px}.emp-confirm__msg{color:#374151;margin:0;font-size:14px;line-height:1.6}.emp-confirm__warning{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:10px 0 0;padding:8px 10px;font-size:13px;line-height:1.5}.msd{font-family:Segoe UI,Arial,sans-serif;position:relative}.msd__trigger{color:#111827;cursor:pointer;box-sizing:border-box;text-align:left;background:#fff;border:1px solid #cbd5e1;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;width:100%;height:36px;padding:0 10px;font-size:13px;display:flex}.msd__trigger:focus{border-color:var(--brand-blue,#2878c8);outline:none;box-shadow:0 0 0 2px #2878c82e}.msd__summary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msd__summary--placeholder{color:#94a3b8}.msd__caret{color:#64748b;flex-shrink:0;font-size:11px}.msd__panel{z-index:20;background:#fff;border:1px solid #cbd5e1;border-radius:6px;flex-direction:column;max-height:240px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 10px 24px #0000001f}.msd__search{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:5px;height:32px;margin:8px;padding:0 8px;font-size:13px}.msd__search:focus{border-color:var(--brand-blue,#2878c8);outline:none}.msd__actions{border-bottom:1px solid #e2e8f0;gap:8px;margin-bottom:4px;padding:0 8px 8px;display:flex}.msd__actions button{cursor:pointer;color:#334155;background:#f8fafc;border:1px solid #cbd5e1;border-radius:5px;flex:1;padding:5px 0;font-size:12px}.msd__actions button:hover{background:#eef2f7}.msd__list{padding:0 4px 6px;overflow-y:auto}.msd__item{color:#111827;cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.msd__item:hover{background:#f1f5f9}.msd__item input[type=checkbox]{width:14px;height:14px;accent-color:var(--brand-blue,#2878c8);cursor:pointer;flex-shrink:0;margin:0}.msd__item span{flex:1}.msd__empty{color:#94a3b8;text-align:center;padding:10px 8px;font-size:12px}.ts-page{--ts-brand:#2878c8;--ts-brand-hover:#1a56a2;--ts-brand-soft:#e8f1fb;--ts-border:#d2dce9;--ts-text:#1e3a5f;background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.ts-section-head{background:linear-gradient(#f0f6fc 0%,#fff 100%);border-bottom:1px solid #e5eaf3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.ts-section-head__title{color:var(--ts-text);letter-spacing:.02em;flex-shrink:0;margin:0;font-size:20px;font-weight:700}.ts-section-head__week{flex:1;justify-content:center;align-items:center;gap:10px;min-width:240px;display:flex}.ts-week-label{color:var(--ts-brand);background:var(--ts-brand-soft);white-space:nowrap;border:1px solid #c7d8ef;border-radius:20px;padding:7px 18px;font-size:13px;font-weight:600}.ts-week-nav{border:1.5px solid var(--ts-brand);color:var(--ts-brand);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-family:inherit;font-size:18px;font-weight:700;line-height:1;transition:background .13s,color .13s;display:flex}.ts-week-nav:hover{background:var(--ts-brand);color:#fff}@media (width<=768px){.ts-section-head{flex-direction:column;align-items:stretch}.ts-section-head__week{justify-content:center;min-width:0}}.ts-main-wrap{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:0 0 36px}.ts-main-card{background:#fff;border:1px solid #dde3f0;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px #2878c812}.ts-filter-row{border-bottom:1px solid #eff2f8;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 20px;display:flex}.ts-filter-row--2{justify-content:space-between}.ts-filter-label{color:var(--ts-text);white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.ts-filter-select-wrap{align-items:center;display:inline-flex;position:relative}.ts-filter-select-wrap select{appearance:none;color:#374151;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 6 5-6' stroke='%23888' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 10px center/10px no-repeat;border:1px solid #cbd5e1;border-radius:5px;min-width:150px;height:34px;padding:0 30px 0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.ts-filter-select-wrap select:focus{border-color:var(--ts-brand);outline:none;box-shadow:0 0 0 2px #2878c826}.ts-multiselect-label .msd{width:200px}.ts-filter-row__left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ts-date-range{background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;height:34px;padding:0 10px;display:flex}.ts-date-input{color:#374151;background:0 0;border:none;outline:none;width:105px;font-family:Segoe UI,Arial,sans-serif;font-size:12px}.ts-date-sep{color:#9ca3af;font-size:12px}.ts-date-cal{color:#6b7280;align-items:center;display:flex}.ts-clear-filters-btn{color:#374151;cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;height:34px;padding:0 14px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.ts-clear-filters-btn:hover{background:var(--ts-brand-soft);border-color:var(--ts-brand);color:var(--ts-brand)}.ts-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:10px 20px;padding:10px 14px;font-size:13px}.ts-table-wrap{width:100%;overflow-x:auto}.ts-table{border-collapse:collapse;color:#1e293b;width:100%;font-size:13px}.ts-table thead tr{background:#eef4fb}.ts-table th{text-align:left;color:var(--ts-text);letter-spacing:.3px;white-space:nowrap;border-bottom:2px solid #d1e3f8;padding:8px 14px;font-size:12px;font-weight:700}.ts-th-r{text-align:right!important}.ts-table td{vertical-align:middle;border-bottom:1px solid #e8eef8;padding:8px 14px;font-size:13px}.ts-table tbody tr:hover{background:#f5f8fc}.ts-table tbody tr:last-child td{border-bottom:none}.ts-state-cell{text-align:center;color:#9ca3af;padding:48px 0;font-size:13px}.ts-state-cell--empty{color:#b0bad0}.ts-td-date{white-space:nowrap;color:var(--ts-text);font-weight:600}.ts-td-day{color:#4b6080;white-space:nowrap;font-size:12px}.ts-td-drawing{color:var(--ts-brand);letter-spacing:.5px;font-weight:700}.ts-td-rev{text-align:center;color:#374151;font-weight:600}.ts-td-task{color:#374151}.ts-td-hours{text-align:right;color:var(--ts-text);font-weight:700}.ts-td-notes{color:#6b7280;font-size:12px}.ts-td-action{text-align:center;width:36px;padding:0 6px}.ts-td-inout{color:#4b6080;white-space:nowrap;font-size:12px;line-height:1.5}.ts-td-shift{color:#374151;white-space:nowrap}.ts-td-select{min-width:130px;padding:5px 8px}.ts-inline-select-wrap{position:relative}.ts-inline-select-wrap select{appearance:none;color:#1e293b;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1l4 5 4-5' stroke='%232878c8' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 8px center/9px no-repeat;border:1px solid #cbd5e1;border-radius:5px;width:100%;padding:5px 26px 5px 10px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600}.ts-inline-select-wrap select:hover{border-color:var(--ts-brand);background-color:#f0f6ff}.ts-inline-select-wrap select:focus{border-color:var(--ts-brand);outline:none;box-shadow:0 0 0 2px #2878c826}.ts-row-del{color:#cbd5e1;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;transition:all .13s;display:inline-flex}.ts-row-del:hover{color:#dc2626;background:#fee2e2}.ts-total-row{color:var(--ts-text);background:#f8fafd;border-top:1px solid #e8eef8;padding:12px 20px;font-size:13px;font-weight:600}.ts-total-row strong{color:var(--ts-brand);margin-left:4px;font-size:15px}.ts-footer-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.ts-foot-btn{color:#374151;cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;height:38px;padding:0 18px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.ts-foot-btn:hover{background:var(--ts-brand-soft);border-color:var(--ts-brand);color:var(--ts-brand)}.ts-foot-btn--primary{background:var(--ts-brand);color:#fff;border-color:var(--ts-brand)}.ts-foot-btn--primary:hover{background:var(--ts-brand-hover);border-color:var(--ts-brand-hover);color:#fff}.ts-foot-btn--export{margin-left:auto}.ts-modal-overlay{z-index:400;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.ts-modal{background:#fff;border:1px solid #d1d5db;border-radius:10px;flex-direction:column;width:100%;max-width:820px;max-height:calc(100vh - 48px);display:flex;overflow:auto;box-shadow:0 20px 50px #00000026}.ts-modal__head{border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.ts-modal__title{color:#1a2e4a;margin:0;font-size:17px;font-weight:800}.ts-modal__close{color:#64748b;cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.ts-modal__close:hover{color:#1e293b}.ts-modal__body{padding:20px;overflow-y:auto}.ts-modal__info-row{color:#374151;background:#f8fafd;border:1px solid #e5eaf3;border-radius:8px;flex-wrap:wrap;gap:8px 24px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.ts-modal__info-row strong{color:var(--ts-text)}.ts-modal__grid{display:grid}.ts-modal__req{color:#ef4444;margin-left:2px}.ts-modal__field input,.ts-modal__field select{color:#111827;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:6px;height:36px;padding:0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.ts-modal__field input:focus,.ts-modal__field select:focus{border-color:var(--ts-brand);outline:none;box-shadow:0 0 0 2px #2878c82e}.ts-modal__error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:12px 0 0;padding:8px 12px;font-size:12px}.ts-modal__actions{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;display:flex}.ts-modal__btn{cursor:pointer;border-radius:6px;min-height:38px;padding:0 18px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700}.ts-modal__btn:disabled{opacity:.65;cursor:not-allowed}.ts-modal__btn--pri{background:var(--ts-brand);color:#fff;border:1px solid var(--ts-brand)}.ts-modal__btn--pri:hover:not(:disabled){background:var(--ts-brand-hover)}.ts-modal__btn--sec{color:#374151;background:#fff;border:1px solid #cbd5e1}.ts-modal__btn--sec:hover:not(:disabled){background:#f8fafc}.ts-multiselect{width:200px;display:inline-block;position:relative}.ts-multiselect-trigger{border:1px solid var(--ts-border);width:100%;color:var(--ts-text);text-align:left;cursor:pointer;background:#fff;border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s;display:flex}.ts-multiselect-trigger:hover{border-color:var(--ts-brand)}.ts-multiselect-text{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.ts-multiselect-arrow{color:#7a8ba1;font-size:10px}.ts-multiselect-popover{border:1px solid var(--ts-border);z-index:100;background:#fff;border-radius:8px;flex-direction:column;max-height:300px;margin-top:4px;display:flex;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 4px 15px #1e3a5f1f}.ts-multiselect-search-wrap{border-bottom:1px solid #eff2f8;padding:8px}.ts-multiselect-search{border:1px solid var(--ts-border);box-sizing:border-box;border-radius:4px;width:100%;padding:6px 10px;font-size:13px}.ts-multiselect-actions{background:#f8fafc;border-bottom:1px solid #eff2f8;justify-content:space-between;padding:6px 8px;display:flex}.ts-multiselect-actions button{color:var(--ts-brand);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px;font-weight:600}.ts-multiselect-actions button:hover{text-decoration:underline}.ts-multiselect-list{flex:1;padding:6px 0;overflow-y:auto}.ts-multiselect-item{color:var(--ts-text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.ts-multiselect-item:hover{background:#f0f6fc}.ts-multiselect-item input[type=checkbox]{cursor:pointer}.ts-multiselect-empty{text-align:center;color:#7a8ba1;padding:12px;font-size:12px}.ts-modal-multiselect{width:100%;position:relative}.ts-modal-multiselect-trigger{color:#111827;text-align:left;cursor:pointer;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:6px;justify-content:space-between;align-items:center;width:100%;height:36px;padding:0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;transition:border-color .15s,box-shadow .15s;display:flex}.ts-modal-multiselect-trigger:focus,.ts-modal-multiselect-trigger:hover{border-color:var(--ts-brand);outline:none;box-shadow:0 0 0 2px #2878c82e}.ts-modal-multiselect-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ts-modal-multiselect-popover{z-index:9999;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex-direction:column;max-height:240px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 6px 20px #1e3a5f26}.ts-modal__multi-badge{color:var(--ts-brand);font-size:12px;font-weight:600}.ts-td-status{white-space:nowrap}.ts-status-badge{white-space:nowrap;border-radius:20px;margin-right:4px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.ts-status-badge--present{color:#15803d;background:#dcfce7}.ts-status-badge--absent{color:#b91c1c;background:#fee2e2}.ts-status-badge--half-day{color:#92400e;background:#fef3c7}.ts-status-badge--leave{color:#3730a3;background:#e0e7ff}.ts-status-badge--holiday{color:#9d174d;background:#fce7f3}.ts-status-badge--pending{color:#64748b;background:#f1f5f9}.ts-status-badge--weekend{color:#be123c;background:#ffe4e6}.ts-status-trigger{cursor:pointer;background:0 0;border:none;align-items:center;margin:0;padding:0;display:inline-flex}.ts-status-trigger:hover .ts-status-badge{filter:brightness(.95)}.ts-row-reopen{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;margin-right:2px;transition:all .13s;display:inline-flex}.ts-row-reopen:hover{background:var(--ts-brand-soft);color:var(--ts-brand)}.ts-row-edit{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;margin-right:2px;transition:all .13s;display:inline-flex}.ts-row-edit:hover{background:var(--ts-brand-soft);color:var(--ts-brand)}.ts-inline-select-wrap select:disabled{opacity:.6;cursor:not-allowed;background-color:#f1f5f9}.ts-row-del:disabled,.ts-row-edit:disabled{opacity:.35;cursor:not-allowed}.ts-row-del:disabled:hover{color:#cbd5e1;background:0 0}.ts-row-edit:disabled:hover{color:#94a3b8;background:0 0}.ts-modal.ts-modal--wide{width:94vw;max-width:1400px}.ts-modal__section-label{color:#64748b;text-transform:uppercase;letter-spacing:.4px;margin:4px 0 10px;font-size:12px;font-weight:700}.ts-modal__lines{flex-direction:column;gap:14px;max-height:340px;padding-right:4px;display:flex;overflow-y:auto}.ts-modal__line{background:#f8fafd;border:1px solid #e5eaf3;border-radius:8px;align-items:center;gap:10px;padding:14px;display:flex}.ts-modal__line-fields{flex-wrap:wrap;flex:auto;gap:10px 14px;min-width:0;display:flex}.ts-modal__line .ts-modal__field{flex:170px}.ts-modal__line .ts-modal__field--sm{flex:0 90px}.ts-modal__field--sm input{text-align:right}.ts-modal__line-actions{flex:none;align-items:center;gap:8px;padding-left:4px;display:flex}.ts-modal__line-del,.ts-modal__line-add{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;transition:background .13s;display:inline-flex}.ts-modal__line-del{color:#dc2626}.ts-modal__line-del:hover{background:#fee2e2}.ts-modal__line-add{color:#2563eb}.ts-modal__line-add:hover{background:#dbeafe}@media (width<=520px){.ts-modal__line .ts-modal__field,.ts-modal__line .ts-modal__field--sm{flex-basis:100%}}.prj-page{background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.prj-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:0 0 40px}.prj-title-section{flex-direction:column;align-items:center;padding:20px 0 18px;display:flex;position:relative}.prj-back-btn{color:#1a56a2;cursor:pointer;background:0 0;border:none;padding:0;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:color .15s;position:absolute;top:22px;left:0}.prj-back-btn:hover{color:#154488}.prj-title{color:#1a2e4a;letter-spacing:-.3px;margin:0 0 8px;font-size:34px;font-weight:800}.prj-subtitle-row{align-items:center;gap:10px;display:flex}.prj-sub-line{background:linear-gradient(90deg,#2878c8 0%,#60a5fa 100%);border-radius:2px;flex:1;max-width:80px;height:2px}.prj-sub-text{letter-spacing:4px;color:#2878c8;font-size:11px;font-weight:700}.prj-card{background:#fff;border:1px solid #dde3f0;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #2878c80f}.prj-toolbar{border-bottom:1px solid #eff2f8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.prj-toolbar__left{flex-wrap:wrap;flex:1;align-items:center;gap:8px;display:flex}.prj-search-wrap{background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:7px;align-items:center;gap:8px;min-width:220px;height:36px;padding:0 12px;display:flex}.prj-search-wrap svg{color:#94a3b8;flex-shrink:0}.prj-search-input{color:#111827;background:0 0;border:none;outline:none;width:100%;min-width:160px;font-size:13px}.prj-btn-add{color:#fff;cursor:pointer;white-space:nowrap;background:#2878c8;border:none;border-radius:7px;padding:8px 18px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700;transition:background .15s}.prj-btn-add:hover{background:#1a56a2}.prj-list-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:10px 20px;padding:10px 14px;font-size:13px}.prj-table-wrap{width:100%;overflow-x:auto}.prj-table{border-collapse:collapse;color:#1e293b;width:100%;font-size:12px}.prj-table thead tr{background:#eef4fb}.prj-table th{text-align:left;color:#374151;letter-spacing:.3px;white-space:nowrap;border-bottom:2px solid #d1e3f8;padding:5px 10px;font-size:12px;font-weight:600}.prj-table td{vertical-align:middle;border-bottom:1px solid #e8eef8;padding:4px 10px}.prj-table .tr-alt{background:#f8fafd}.prj-table tbody tr:hover{background:#f5f8fc}.prj-state-cell{text-align:center;color:#9ca3af;padding:48px 0}.td-prj-no{color:#2878c8;font-weight:700}.td-prj-name{color:#1a2e4a;max-width:200px;font-weight:600}.prj-btn-edit{color:#2878c8;cursor:pointer;white-space:nowrap;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:5px;align-items:center;gap:4px;padding:3px 8px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.prj-btn-edit:hover{color:#fff;background:#2878c8;border-color:#2878c8}.prj-btn-assign{color:#16a34a;cursor:pointer;white-space:nowrap;background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:5px;align-items:center;gap:4px;padding:3px 8px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.prj-btn-assign:hover{color:#fff;background:#16a34a;border-color:#16a34a}.prj-btn-predetailing{color:#0284c7;cursor:pointer;white-space:nowrap;background:#f0f9ff;border:1.5px solid #bae6fd;border-radius:5px;align-items:center;gap:4px;padding:5px 12px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.prj-btn-predetailing:hover{color:#fff;background:#0284c7;border-color:#0284c7}.prj-footer{border-top:1px solid #eff2f8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px;display:flex}.prj-entry-info{color:#6b7280;font-size:12px}.prj-pagination{align-items:center;gap:4px;display:flex}.page-btn:hover{color:#2878c8;background:#eff6ff;border-color:#93c5fd}.page-btn--active{color:#fff!important;background:#2878c8!important;border-color:#2878c8!important}.prj-overlay{z-index:200;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.prj-modal{background:#fff;border:1px solid #d1d5db;border-radius:10px;flex-direction:column;width:100%;max-width:640px;max-height:calc(100vh - 48px);display:flex;overflow:hidden;box-shadow:0 20px 50px #00000021}.prj-modal--sm{max-width:420px}.prj-modal__hdr{border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.prj-modal__title{color:#1a2e4a;margin:0;font-size:18px;font-weight:800}.prj-modal__close{color:#64748b;cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.prj-modal__close:hover{color:#1e293b}.prj-modal__body{flex:1;padding:20px 24px;overflow-y:auto}.prj-section-label{letter-spacing:1.5px;text-transform:uppercase;color:#2878c8;margin:0 0 12px;font-size:11px;font-weight:700}.prj-form-grid{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.prj-field{margin-bottom:0}.prj-field__label{color:#374151;font-size:12px;font-weight:600}.prj-req{color:#ef4444;margin-left:2px}.prj-field__input{color:#111827;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:6px;height:36px;padding:0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.prj-field__input:read-only{color:#64748b;background:#f8fafc}.prj-field__input:focus{border-color:#2878c8;outline:none;box-shadow:0 0 0 2px #2878c82e}.prj-modal__ftr{border-top:1px solid #e5e7eb;flex-shrink:0;padding:14px 24px}.prj-form-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0 0 12px;padding:8px 12px;font-size:12px}.prj-modal__actions{justify-content:flex-end;gap:10px;display:flex}.btn-cancel{color:#374151;cursor:pointer;background:#e2e8f0;border:none;border-radius:6px;padding:8px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:background .15s}.btn-save{color:#fff;cursor:pointer;background:#2878c8;border:none;border-radius:6px;padding:8px 24px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700;transition:background .15s}.shf-page{background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.shf-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:0 0 40px}.shf-title-section{flex-direction:column;align-items:center;padding:20px 0 18px;display:flex;position:relative}.shf-back-btn{color:#1a56a2;cursor:pointer;background:0 0;border:none;padding:0;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600;transition:color .15s;position:absolute;top:22px;left:0}.shf-back-btn:hover{color:#154488}.shf-title{color:#1a2e4a;margin:0 0 8px;font-size:34px;font-weight:800}.shf-subtitle-row{align-items:center;gap:10px;display:flex}.shf-sub-line{background:linear-gradient(90deg,#2878c8,#60a5fa);border-radius:2px;flex:1;max-width:80px;height:2px}.shf-sub-text{letter-spacing:4px;color:#2878c8;font-size:11px;font-weight:700}.shf-card{background:#fff;border:1px solid #dde3f0;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #2878c80f}.shf-toolbar{border-bottom:1px solid #eff2f8;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.shf-toolbar__info{color:#6b7280;font-size:13px}.shf-btn-add{color:#fff;cursor:pointer;background:#2878c8;border:none;border-radius:7px;padding:8px 18px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700;transition:background .15s}.shf-btn-add:hover{background:#1a56a2}.shf-list-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:10px 20px;padding:10px 14px;font-size:13px}.shf-table-wrap{background:#fff;border:1px solid #d9e2ef;width:100%;overflow-x:auto}.shf-table{border-collapse:collapse;color:#1e293b;width:100%;font-size:12px}.shf-table thead tr{background:#eef4fb}.shf-table th{text-align:left;color:#374151;letter-spacing:.3px;white-space:nowrap;border-bottom:2px solid #d1e3f8;padding:5px 10px;font-size:12px;font-weight:600}.shf-table td{vertical-align:middle;border-bottom:1px solid #e8eef8;padding:4px 10px;font-size:12px}.shf-table .tr-alt{background:#f8fafd}.shf-table tbody tr:hover{background:#f5f8fc}.shf-state-cell{text-align:center;color:#9ca3af;padding:56px 0}.td-shf-name{color:#1a2e4a;font-weight:700}.th-c,.td-c{text-align:center!important}.shf-btn-edit{color:#2878c8;cursor:pointer;white-space:nowrap;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:5px;align-items:center;gap:4px;padding:3px 8px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.shf-btn-edit:hover{color:#fff;background:#2878c8;border-color:#2878c8}.shf-btn-delete{color:#dc2626;cursor:pointer;white-space:nowrap;background:#fef2f2;border:1.5px solid #fecaca;border-radius:5px;align-items:center;gap:4px;padding:3px 8px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.shf-btn-delete:hover{color:#fff;background:#dc2626;border-color:#dc2626}.shf-overlay{z-index:200;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.shf-modal{background:#fff;border:1px solid #d1d5db;border-radius:10px;flex-direction:column;width:100%;max-width:440px;display:flex;overflow:hidden;box-shadow:0 20px 50px #00000021}.shf-modal--sm{max-width:380px}.shf-modal__hdr{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.shf-modal__title{color:#1a2e4a;margin:0;font-size:18px;font-weight:800}.shf-modal__close{color:#64748b;cursor:pointer;background:0 0;border:none;align-items:center;display:flex}.shf-modal__close:hover{color:#1e293b}.shf-modal__body{padding:20px 24px}.shf-form-grid{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.shf-field{margin-bottom:12px}.shf-field--full{grid-column:1/-1}.shf-field__label{color:#374151;font-size:12px;font-weight:600}.shf-req{color:#ef4444;margin-left:2px}.shf-field__input{color:#111827;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:6px;height:36px;padding:0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.shf-field__input:focus{border-color:#2878c8;outline:none;box-shadow:0 0 0 2px #2878c82e}.shf-modal__ftr{border-top:1px solid #e5e7eb;padding:14px 24px}.shf-form-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0 0 12px;padding:8px 12px;font-size:12px}.shf-modal__actions{justify-content:flex-end;gap:10px;display:flex}.btn-cancel{color:#374151;cursor:pointer;background:#e2e8f0;border:none;border-radius:6px;padding:8px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600}.btn-save{color:#fff;cursor:pointer;background:#2878c8;border:none;border-radius:6px;padding:8px 24px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700}.btn-save:disabled{cursor:not-allowed;background:#93c5fd}.btn-delete-confirm{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:8px 24px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700}.btn-delete-confirm:disabled{cursor:not-allowed;background:#fca5a5}.psc-badge{color:#fff;text-align:center;white-space:nowrap;border-radius:14px;min-width:90px;padding:5px 16px;font-size:12px;font-weight:700;display:inline-block}.psc-badge--released{background:#3fa757}.psc-badge--progress{background:#e2543f}.psc-badge--pending{background:#eca92c}.pl-page{--brand-blue:#2878c8;--brand-blue-hover:#226eb9;background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.pl-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:0 0 36px}.pl-section-head{background:linear-gradient(#f0f6fc 0%,#fff 100%);border-bottom:1px solid #e5eaf3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.pl-section-head__title{color:#1a2e4a;letter-spacing:.02em;flex-shrink:0;margin:0;font-size:20px;font-weight:700}.pl-card{box-shadow:none;background:0 0;border:none;border-radius:0;overflow:hidden}.pl-tabs-row{border-bottom:1px solid #d7deea;justify-content:space-between;align-items:flex-end;padding:0;display:flex}.pl-tabs{align-items:flex-end;gap:2px;display:flex}.pl-tab{color:#375274;cursor:pointer;background:#fff;border:1px solid #d7deea;border-bottom:none;border-radius:6px 6px 0 0;padding:10px 22px;font-size:15px;font-weight:700;position:relative}.pl-tab--active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.pl-tab--active:after{content:"";border-left:9px solid #0000;border-right:9px solid #0000;border-top:9px solid var(--brand-blue);width:0;height:0;position:absolute;bottom:-9px;left:50%;transform:translate(-50%)}.pl-tab-actions{align-items:center;gap:9px;padding-bottom:7px;display:flex}.pl-add-main{background:var(--brand-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 18px;font-family:Segoe UI,Arial,sans-serif;font-size:14px;font-weight:700;transition:background .15s}.pl-add-main:hover{background:var(--brand-blue-hover)}.pl-filters{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;align-items:center;gap:9px;padding:18px 14px 10px;display:flex}.filter-item{align-items:center;gap:6px;display:flex}.filter-label{color:#374151;font-size:14px;font-weight:700}.filter-select,.filter-date{color:#374151;background:#fff;border:1px solid #cbd5e1;border-radius:6px;min-width:130px;height:34px;padding:0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:14px}.filter-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-right:28px}.pl-search-wrap{background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:8px;min-width:220px;height:34px;padding:0 10px;display:flex}.pl-search-wrap svg{color:#94a3b8;flex-shrink:0}.pl-search-input{color:#374151;background:0 0;border:none;outline:none;width:100%;font-family:Segoe UI,Arial,sans-serif;font-size:14px}.pl-search-clear{color:#9ca3af;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 0 0 4px;font-size:16px;line-height:1}.pl-search-clear:hover{color:#374151}.pl-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:12px 14px 0;padding:10px 14px;font-size:13px}.pl-toast-stack{z-index:1000;flex-direction:column;gap:10px;max-width:360px;display:flex;position:fixed;top:84px;right:20px}.pl-toast{border-radius:6px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;animation:.2s ease-out pl-toast-in;display:flex;box-shadow:0 6px 18px #00000026}.pl-toast--error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.pl-toast-close{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:16px;line-height:1}@keyframes pl-toast-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.pl-table-wrap{background:#fff;border:1px solid #d9e2ef;border-top:none;width:100%;margin-top:0;overflow-x:auto}.pl-table{border-collapse:collapse;width:100%;font-size:12px}.pl-table thead tr{background:#dce8f7;border-bottom:2px solid #c8d8ee}.pl-table th{color:#1a3a6e;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.pl-table tbody tr{border-bottom:1px solid #c8d8ee;transition:background .12s}.pl-table tbody tr:hover{background:#f5f8fc}.tr-alt:hover{background:#f1f5f9}.pl-table td{color:#374151;padding:4px 10px;font-size:12px}.td-project-no{color:#1a56a2;cursor:pointer;background:0 0;border:none;padding:0;font-family:Segoe UI,Arial,sans-serif;font-size:15px;font-weight:800}.td-project-no:hover{background:0 0;text-decoration:underline}.td-project-name{color:#1a2e4a;text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-family:Segoe UI,Arial,sans-serif;font-size:15px;font-weight:600}.td-project-name:hover{color:var(--brand-blue);background:0 0;text-decoration:underline}.btn-open{background:var(--brand-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;align-items:center;gap:5px;padding:3px 10px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:700;transition:background .15s;display:inline-flex}.btn-open:hover{background:var(--brand-blue-hover)}.btn-download-predetailing{color:#1e3a8a;cursor:pointer;white-space:nowrap;background:#eef2ff;border:1px solid #c7d2fe;border-radius:4px;justify-content:center;align-items:center;padding:3px 10px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:700;transition:background .15s;display:inline-flex}.btn-download-predetailing:hover{background:#e0e7ff}.pl-row-actions{flex-wrap:nowrap;justify-content:center;align-items:center;gap:20px;display:inline-flex}.pl-table th:last-child,.pl-table td:last-child{white-space:nowrap;width:1%}.btn-icon{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:all .15s;display:inline-flex}.btn-icon--edit{color:#1d4ed8}.btn-icon--edit:hover{background:#eff6ff;border-color:#93c5fd}.btn-icon--delete{color:#b91c1c}.btn-icon--delete:hover{background:#fef2f2;border-color:#fca5a5}.pl-state-cell{text-align:center;color:#9ca3af;padding:56px 0;font-size:14px}.pl-footer{box-sizing:border-box;background:#fff;border:1px solid #d9e2ef;border-top:none;border-radius:0;align-items:center;gap:12px;width:100%;padding:12px 14px 10px;display:flex}.pl-entry-info{color:#6b7280;flex:1;font-size:14px}.pl-pagination{align-items:center;gap:4px;display:flex}.page-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;min-width:32px;height:32px;padding:0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600}.page-btn:hover{background:#f1f5f9}.page-btn--active{background:var(--brand-blue);border-color:var(--brand-blue);color:#fff}.page-btn--next{min-width:54px}.pl-modal-overlay{z-index:400;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.pl-modal{background:#fff;border:1px solid #d1d5db;border-radius:8px;flex-direction:column;width:100%;max-width:600px;max-height:calc(100vh - 48px);display:flex;overflow:auto;box-shadow:0 20px 50px #00000026}.pl-modal__head{border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.pl-modal__title{color:#1a2e4a;margin:0;font-size:18px;font-weight:800}.pl-modal__close{color:#64748b;cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.pl-modal__close:hover{color:#1e293b}.pl-modal__body{flex:1;padding:20px;overflow-y:auto}.pl-modal__grid{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.pl-modal__field em{color:#ef4444;margin-left:2px;font-style:normal}.pl-modal__field input,.pl-modal__field select{color:#111827;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:6px;height:36px;padding:0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.pl-modal__field input:focus,.pl-modal__field select:focus{border-color:var(--brand-blue);outline:none;box-shadow:0 0 0 2px #2878c82e}.pl-modal__error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:14px 0 0;padding:8px 12px;font-size:12px}.pl-modal__actions{border-top:1px solid #e5e7eb;flex-shrink:0;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.pl-modal__btn{cursor:pointer;border-radius:6px;min-height:38px;padding:0 18px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700}.pl-modal__btn:disabled{opacity:.65;cursor:not-allowed}.pl-modal__btn--pri{background:var(--brand-blue);color:#fff;border:1px solid var(--brand-blue)}.pl-modal__btn--pri:hover:not(:disabled){background:var(--brand-blue-hover);border-color:var(--brand-blue-hover)}.pl-modal__btn--sec{color:#374151;background:#fff;border:1px solid #cbd5e1}.pl-modal__btn--sec:hover:not(:disabled){background:#f8fafc}.pl-modal--wide{max-width:720px}.pl-modal__tabs{border-bottom:2px solid #e5e7eb;flex-shrink:0;align-items:center;gap:8px;padding:0 20px;display:flex}.pl-modal__tab{color:#9ca3af;-webkit-user-select:none;user-select:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-2px;padding:10px 4px;font-size:13px;font-weight:600;display:flex}.pl-modal__tab--active{color:#1a56a2;border-bottom-color:#1a56a2}.pl-modal__step-num{color:#6b7280;background:#e5e7eb;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex}.pl-modal__tab--active .pl-modal__step-num{color:#fff;background:#1a56a2}.pl-modal__tab--clickable{cursor:pointer}.pl-modal__tab--clickable:hover{color:#1a56a2}.pl-modal__step-arrow{color:#d1d5db;font-size:16px;line-height:1}.pl-modal__pd{flex-direction:column;gap:4px;display:flex}.pl-modal__pd-section{text-transform:uppercase;letter-spacing:.6px;color:#6b7280;margin:12px 0 4px;font-size:11px;font-weight:700}.pl-modal__pd-checks{gap:24px;margin-bottom:6px;display:flex}.pl-modal__pd-check{color:#374151;cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.pl-modal__pd-check input[type=checkbox]{accent-color:#1a56a2;cursor:pointer;width:15px;height:15px}.pl-modal__field textarea{color:#1e293b;resize:vertical;box-sizing:border-box;border:1px solid #d1d5db;border-radius:5px;width:100%;padding:8px 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.pl-modal__field textarea:focus{border-color:#1a56a2;outline:none;box-shadow:0 0 0 2px #1a56a21f}.rol-page{background:#f3f6fb;flex-direction:column;min-height:100vh;display:flex}.rol-content{flex:1;width:100%;max-width:100%;margin:0;padding:32px 0}.rol-title-section{text-align:center;margin-bottom:28px;position:relative}.rol-back-btn{color:#1759a0;cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:500;position:absolute;top:50%;left:0;transform:translateY(-50%)}.rol-back-btn:hover{text-decoration:underline}.rol-title{color:#1a2233;letter-spacing:.01em;margin:0 0 6px;font-size:26px;font-weight:700}.rol-subtitle-row{justify-content:center;align-items:center;gap:10px;display:flex}.rol-sub-line{background:linear-gradient(90deg,#0000,#2878c8);flex:1;max-width:80px;height:1.5px}.rol-sub-text{color:#2878c8;letter-spacing:.2em;font-size:11px;font-weight:700}.rol-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 8px #18387812}.rol-toolbar{border-bottom:1.5px solid #e5eaf3;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.rol-toolbar__info{color:#6b7280;font-size:13px}.rol-btn-add{color:#fff;cursor:pointer;background:#1759a0;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600}.rol-btn-add:hover{background:#1246821}.rol-list-error{color:#dc2626;margin:0;padding:8px 20px;font-size:13px}.rol-table-wrap{background:#fff;border:1px solid #d9e2ef;width:100%;overflow-x:auto}.rol-table{border-collapse:collapse;width:100%;font-size:12px}.rol-table thead tr{background:#ebf2fd}.rol-table th{text-align:left;color:#374151;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.rol-table td{color:#374151;border-bottom:1px solid #e5eaf3;padding:4px 10px}.rol-table tbody tr:hover{background:#f5f8fc}.rol-state-cell{text-align:center;color:#9ca3af;padding:40px 0}.rol-btn-edit{color:#1759a0;cursor:pointer;background:#ebf2fd;border:none;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-flex}.rol-btn-edit:hover{background:#d1e3f8}.rol-btn-delete{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:500}.rol-btn-delete:hover{background:#fecaca}.rol-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rol-modal{background:#fff;border-radius:10px;width:420px;max-width:95vw;box-shadow:0 8px 32px #0000002e}.rol-modal--sm{width:360px}.rol-modal__hdr{border-bottom:1px solid #e5eaf3;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.rol-modal__title{color:#1a2233;margin:0;font-size:16px;font-weight:700}.rol-modal__close{cursor:pointer;color:#6b7280;background:0 0;border:none;align-items:center;display:flex}.rol-modal__close:hover{color:#111}.rol-modal__body{padding:18px 20px}.rol-modal__ftr{border-top:1px solid #e5eaf3;padding:12px 20px 16px}.rol-modal__actions{justify-content:flex-end;gap:10px;display:flex}.rol-field{margin-bottom:12px}.rol-field__label{color:#374151;font-size:12px;font-weight:600}.rol-field__input{border:1.5px solid #d1d5db;border-radius:6px;outline:none;padding:8px 10px;font-size:13px;transition:border .15s}.rol-field__input:focus{border-color:#1759a0}.rol-req{color:#dc2626;margin-left:2px}.rol-form-error{color:#dc2626;margin:0;font-size:12px}.rap-page{background:#edf1f8;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.rap-back-bar{box-sizing:border-box;width:100%;max-width:960px;margin:0 auto;padding:28px 40px 0}.rap-back-btn{color:#1759a0;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin:0;padding:0;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.rap-back-btn:hover{text-decoration:underline}.rap-content{box-sizing:border-box;flex:1;width:100%;max-width:960px;margin:0 auto;padding:20px 40px 48px}.rap-title-section{text-align:center;margin-bottom:36px}.rap-title{color:#1a2e4a;margin:0 0 6px;font-size:26px;font-weight:700}.rap-subtitle-row{justify-content:center;align-items:center;gap:10px;display:flex}.rap-sub-line{background:linear-gradient(90deg,#0000,#2878c8);flex:1;max-width:80px;height:1.5px}.rap-sub-text{color:#2878c8;letter-spacing:.2em;font-size:11px;font-weight:700}.rap-modules{grid-template-columns:repeat(2,1fr);margin-bottom:0}@media (width<=720px){.rap-back-bar{padding:20px 20px 0}.rap-modules{grid-template-columns:1fr}.rap-content{padding:16px 20px 40px}.rap-title-section{text-align:left}.rap-subtitle-row{justify-content:flex-start}}.prm-page{background:#f3f6fb;flex-direction:column;min-height:100vh;display:flex}.prm-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:24px 32px 40px}.prm-back-btn{color:#1759a0;cursor:pointer;background:0 0;border:none;margin-bottom:16px;padding:0;font-size:13px;font-weight:500;display:block}.prm-back-btn:hover{text-decoration:underline}.prm-shell{background:0 0}.prm-tabbar{border-bottom:1px solid #e7eaf0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.prm-tabs{gap:10px;display:flex}.prm-tab{color:#4b5563;cursor:pointer;background:#edeff3;border:none;border-radius:999px;padding:9px 20px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.prm-tab:hover{background:#e3e6ec}.prm-tab--active,.prm-tab--active:hover{color:#fff;background:#2f6fe4}.prm-tabbar__actions{align-items:center;gap:10px;display:flex}.prm-btn-reset{color:#4b5563;cursor:pointer;background:#fff;border:1px solid #d8dee8;border-radius:6px;padding:7px 18px;font-size:13px;font-weight:600}.prm-btn-reset:hover{background:#f3f4f6}.prm-btn-update{color:#2f6fe4;cursor:pointer;background:#fff;border:1.5px solid #2f6fe4;border-radius:6px;padding:6.5px 18px;font-size:13px;font-weight:600}.prm-btn-update:hover{background:#ebf2fd}.prm-btn-update:disabled{opacity:.5;cursor:not-allowed}.prm-msgbar{gap:16px;padding:8px 20px 0;display:flex}.prm-body{align-items:stretch;display:flex}.prm-sidebar{box-sizing:border-box;flex-shrink:0;width:300px;padding:18px 16px}.prm-search-wrap{margin-bottom:14px;position:relative}.prm-search-icon{color:#9ca3af;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.prm-search-input{box-sizing:border-box;border:1px solid #d8dee8;border-radius:6px;outline:none;width:100%;padding:8px 12px 8px 32px;font-size:13px}.prm-search-input:focus{border-color:#2f6fe4}.prm-role-list{border-right:2px solid #1f2937;flex-direction:column;gap:8px;padding-right:16px;display:flex}.prm-role-item{text-align:left;color:#374151;cursor:pointer;background:#fff;border:1px solid #e2e5ea;border-radius:4px;padding:10px 14px;font-family:inherit;font-size:13px}.prm-role-item:hover{border-color:#b7c6e0}.prm-role-item--active,.prm-role-item--active:hover{color:#fff;background:#4f8ae8;border-color:#4f8ae8;font-weight:600}.prm-perm-grid{flex:1;grid-template-columns:repeat(3,1fr);align-content:start;gap:22px 24px;padding:20px 28px 28px;display:grid}.prm-perm-row{align-items:center;gap:10px;display:flex}.prm-perm-label{color:#374151;letter-spacing:.01em;font-size:13px}.prm-toggle{cursor:pointer;background:#f3f4f6;border:1px solid #dde1e8;border-radius:999px;flex-shrink:0;align-items:center;width:34px;height:18px;padding:2px;display:inline-flex}.prm-toggle__dot{background:#c4c9d0;border-radius:50%;width:12px;height:12px;transition:background .15s,transform .15s;transform:translate(0)}.prm-toggle--on .prm-toggle__dot{background:#22c55e;transform:translate(16px)}.prm-userrole-body{flex-direction:column;display:flex}.prm-userrole-row{background:#f7f8fa;border-bottom:1px solid #e7eaf0;flex-wrap:wrap;gap:24px;padding:20px 24px;display:flex}.prm-userrole-empty{min-height:360px}.prm-field{flex:1;min-width:220px}.prm-field-label{color:#374151;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.prm-required{color:#dc2626;margin-left:2px}.prm-ss{position:relative}.prm-ss__control{cursor:pointer;background:#fff;border:1px solid #d8dee8;border-radius:6px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.prm-ss__value{color:#1a2233;font-size:13px}.prm-ss__placeholder{color:#9ca3af;font-size:13px}.prm-ss__icons{align-items:center;gap:8px;display:flex}.prm-ss__clear{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:0;display:flex}.prm-ss__clear:hover{color:#dc2626}.prm-ss__divider{background:#e5e7eb;width:1px;height:16px}.prm-ss__chevron{color:#6b7280;display:flex}.prm-ss__panel{z-index:20;background:#fff;border:1px solid #d8dee8;border-radius:6px;flex-direction:column;max-height:260px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 6px 20px #0000001a}.prm-ss__search{box-sizing:border-box;border:none;border-bottom:1px solid #e5e7eb;outline:none;padding:8px 10px;font-size:13px}.prm-ss__options{overflow-y:auto}.prm-ss__option{color:#374151;cursor:pointer;padding:8px 12px;font-size:13px}.prm-ss__option:hover,.prm-ss__option--active{background:#ebf2fd}.prm-ss__empty{color:#9ca3af;padding:10px 12px;font-size:12px}.prm-state{color:#9ca3af;grid-column:1/-1;font-size:13px}.prm-error{color:#dc2626;margin:0;font-size:12px}.prm-success{color:#16a34a;margin:0;font-size:12px}@media (width<=900px){.prm-body{flex-direction:column}.prm-sidebar{width:100%}.prm-role-list{border-bottom:2px solid #1f2937;border-right:none;max-height:260px;padding-right:0;overflow-y:auto}.prm-perm-grid{grid-template-columns:repeat(2,1fr)}}.dep-page{background:#f3f6fb;flex-direction:column;min-height:100vh;display:flex}.dep-content{flex:1;width:100%;max-width:100%;margin:0;padding:32px 0}.dep-title-section{text-align:center;margin-bottom:28px;position:relative}.dep-back-btn{color:#1759a0;cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:500;position:absolute;top:50%;left:0;transform:translateY(-50%)}.dep-back-btn:hover{text-decoration:underline}.dep-title{color:#1a2233;letter-spacing:.01em;margin:0 0 6px;font-size:26px;font-weight:700}.dep-subtitle-row{justify-content:center;align-items:center;gap:10px;display:flex}.dep-sub-line{background:linear-gradient(90deg,#0000,#2878c8);flex:1;max-width:80px;height:1.5px}.dep-sub-text{color:#2878c8;letter-spacing:.2em;font-size:11px;font-weight:700}.dep-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 8px #18387812}.dep-toolbar{border-bottom:1.5px solid #e5eaf3;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.dep-toolbar__info{color:#6b7280;font-size:13px}.dep-btn-add{color:#fff;cursor:pointer;background:#1759a0;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600}.dep-btn-add:hover{background:#124682}.dep-list-error{color:#dc2626;margin:0;padding:8px 20px;font-size:13px}.dep-table-wrap{background:#fff;border:1px solid #d9e2ef;width:100%;overflow-x:auto}.dep-table{border-collapse:collapse;width:100%;font-size:12px}.dep-table thead tr{background:#ebf2fd}.dep-table th{text-align:left;color:#374151;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.dep-table td{color:#374151;border-bottom:1px solid #e5eaf3;padding:4px 10px}.dep-table tbody tr:hover{background:#f5f8fc}.dep-state-cell{text-align:center;color:#9ca3af;padding:40px 0}.td-c{text-align:center!important}.dep-btn-edit{color:#1759a0;cursor:pointer;background:#ebf2fd;border:none;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-flex}.dep-btn-edit:hover{background:#d1e3f8}.dep-btn-delete{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:500}.dep-btn-delete:hover{background:#fecaca}.dep-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dep-modal{background:#fff;border-radius:10px;width:420px;max-width:95vw;box-shadow:0 8px 32px #0000002e}.dep-modal--sm{width:360px}.dep-modal__hdr{border-bottom:1px solid #e5eaf3;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.dep-modal__title{color:#1a2233;margin:0;font-size:16px;font-weight:700}.dep-modal__close{cursor:pointer;color:#6b7280;background:0 0;border:none;align-items:center;display:flex}.dep-modal__close:hover{color:#111}.dep-modal__body{padding:18px 20px}.dep-modal__ftr{border-top:1px solid #e5eaf3;padding:12px 20px 16px}.dep-modal__actions{justify-content:flex-end;gap:10px;display:flex}.dep-field{margin-bottom:12px}.dep-field__label{color:#374151;font-size:12px;font-weight:600}.dep-field__input{border:1.5px solid #d1d5db;border-radius:6px;outline:none;padding:8px 10px;font-size:13px;transition:border .15s}.dep-field__input:focus{border-color:#1759a0}.dep-req{color:#dc2626;margin-left:2px}.dep-form-error{color:#dc2626;margin:0;font-size:12px}.btn-cancel{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600}.btn-cancel:hover{background:#e5e7eb}.btn-save{color:#fff;cursor:pointer;background:#1759a0;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600}.btn-save:hover{background:#124682}.btn-save:disabled{opacity:.6;cursor:not-allowed}.btn-delete-confirm{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600}.btn-delete-confirm:hover{background:#b91c1c}.btn-delete-confirm:disabled{opacity:.6;cursor:not-allowed}.pdt-page{color:#f8fafc;background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif}.pdt-content{max-width:1100px;margin:0 auto;padding:40px 20px}.pdt-title-section{text-align:center;margin-bottom:35px}.pdt-back-btn{color:#cbd5e1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;margin-bottom:15px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-block}.pdt-back-btn:hover{color:#fff;background:#ffffff26;transform:translate(-4px)}.pdt-title{color:#fff;letter-spacing:-.5px;margin:0 0 10px;font-size:32px;font-weight:700}.pdt-subtitle-row{justify-content:center;align-items:center;gap:15px;display:flex}.pdt-sub-line{background:linear-gradient(90deg,#0000,#fff6,#0000);width:50px;height:1px}.pdt-sub-text{color:#38bdf8;letter-spacing:2px;text-transform:uppercase;font-size:14px;font-weight:600}.pdt-card{-webkit-backdrop-filter:blur(16px);background:#1e293bb3;border:1px solid #ffffff14;border-radius:16px;transition:transform .3s;overflow:hidden;box-shadow:0 20px 40px -15px #00000080}.pdt-tabs-row{background:#0f172a66;border-bottom:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;padding:16px 24px;display:flex}.pdt-tabs{gap:8px;display:flex}.pdt-tab{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:500;transition:all .2s}.pdt-tab:hover{color:#f8fafc;background:#ffffff0d}.pdt-tab--active{color:#38bdf8;font-weight:600;box-shadow:inset 0 0 0 1px #38bdf833;background:#38bdf81f!important}.pdt-btn-save{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border:none;border-radius:8px;padding:10px 22px;font-size:14px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0284c74d}.pdt-btn-save:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0284c773}.pdt-btn-save:active{transform:translateY(0)}.pdt-btn-save:disabled{box-shadow:none;cursor:not-allowed;background:#64748b}.pdt-loading-wrap{text-align:center;color:#94a3b8;padding:80px 0}.pdt-loader{border:4px solid #38bdf81a;border-left-color:#38bdf8;border-radius:50%;width:40px;height:40px;margin:0 auto 15px;animation:1s linear infinite pdt-spin}@keyframes pdt-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pdt-error-card{text-align:center;background:#dc26261a;border:1px solid #dc262633;border-radius:12px;max-width:500px;margin:60px auto;padding:30px}.pdt-error-card h2{color:#ef4444;margin-top:0}.pdt-error-card p{color:#cbd5e1;margin-bottom:24px}.pdt-alert{border-radius:8px;margin:20px 24px 0;padding:12px 18px;font-size:14px;font-weight:500;animation:.3s ease-out fadeIn}.pdt-alert--error{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d}.pdt-alert--success{color:#a7f3d0;background:#10b98126;border:1px solid #10b9814d}.pdt-tab-body{padding:30px 24px}.pdt-scope-checks{border-bottom:1px solid #ffffff0d;gap:30px;margin-bottom:25px;padding-bottom:15px;display:flex}.pdt-checkbox-field{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.pdt-checkbox-field input[type=checkbox]{display:none}.pdt-checkbox-custom{border:2px solid #64748b;border-radius:5px;width:20px;height:20px;transition:all .2s;display:inline-block;position:relative}.pdt-checkbox-field input:checked+.pdt-checkbox-custom{background:#38bdf8;border-color:#38bdf8}.pdt-checkbox-field input:checked+.pdt-checkbox-custom:after{content:"";border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:5px;height:10px;position:absolute;top:2px;left:6px;transform:rotate(45deg)}.pdt-checkbox-label{color:#e2e8f0;font-size:15px;font-weight:500}.pdt-form-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.pdt-form-grid--single{grid-template-columns:1fr}.pdt-field{flex-direction:column;gap:8px;display:flex}.pdt-field__label{color:#94a3b8;letter-spacing:.5px;text-transform:uppercase;font-size:13px;font-weight:600}.pdt-field__input,.pdt-field__textarea{color:#fff;background:#0f172a99;border:1px solid #ffffff1f;border-radius:8px;padding:12px 14px;font-size:14px;transition:all .2s}.pdt-field__input:focus,.pdt-field__textarea:focus{background:#0f172ad9;border-color:#38bdf8;outline:none;box-shadow:0 0 0 3px #38bdf826}.pdt-field__textarea{resize:vertical}.pdt-checklist-section{border-top:1px solid #ffffff0d;margin-top:35px;padding-top:25px}.pdt-checklist-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.pdt-checklist-header h3{color:#fff;margin:0;font-size:18px;font-weight:600}.pdt-btn-add-item{color:#38bdf8;cursor:pointer;background:#38bdf81a;border:1px dashed #38bdf84d;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s}.pdt-btn-add-item:hover{background:#38bdf82e;border-color:#38bdf8}.pdt-checklist-list{flex-direction:column;gap:12px;display:flex}.pdt-checklist-empty{text-align:center;color:#64748b;background:#0f172a40;border:1px dashed #ffffff0d;border-radius:8px;padding:30px;font-size:14px}.pdt-checklist-row{align-items:center;gap:15px;animation:.25s ease-out slideIn;display:flex}.pdt-checklist-field{display:flex}.pdt-checklist-field--desc{flex:1}.pdt-checklist-field--date{width:200px}.pdt-btn-remove-item{color:#f87171;cursor:pointer;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:20px;transition:all .2s;display:flex}.pdt-btn-remove-item:hover{color:#fff;background:#ef444433;border-color:#ef4444}@keyframes slideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mst-page{background:#edf1f8;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.mst-content{box-sizing:border-box;flex:1;width:100%;max-width:960px;margin:0 auto;padding:32px 40px 48px}.mst-title-section{text-align:center;margin-bottom:36px}.mst-title{color:#1a2e4a;margin:0 0 6px;font-size:26px;font-weight:700}.mst-subtitle-row{justify-content:center;align-items:center;gap:10px;display:flex}.mst-sub-line{background:linear-gradient(90deg,#0000,#2878c8);flex:1;max-width:80px;height:1.5px}.mst-sub-text{color:#2878c8;letter-spacing:.2em;font-size:11px;font-weight:700}.mst-modules{grid-template-columns:repeat(2,1fr);margin-bottom:0}@media (width<=720px){.mst-modules{grid-template-columns:1fr}.mst-content{padding:24px 20px 40px}.mst-title-section{text-align:left}.mst-subtitle-row{justify-content:flex-start}}.loc-page{background:#f3f6fb;flex-direction:column;min-height:100vh;display:flex}.loc-content{flex:1;width:100%;max-width:100%;margin:0;padding:32px 0}.loc-title-section{text-align:center;margin-bottom:28px;position:relative}.loc-back-btn{color:#1759a0;cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:500;position:absolute;top:50%;left:0;transform:translateY(-50%)}.loc-back-btn:hover{text-decoration:underline}.loc-title{color:#1a2233;letter-spacing:.01em;margin:0 0 6px;font-size:26px;font-weight:700}.loc-subtitle-row{justify-content:center;align-items:center;gap:10px;display:flex}.loc-sub-line{background:linear-gradient(90deg,#0000,#2878c8);flex:1;max-width:80px;height:1.5px}.loc-sub-text{color:#2878c8;letter-spacing:.2em;font-size:11px;font-weight:700}.loc-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 8px #18387812}.loc-toolbar{border-bottom:1.5px solid #e5eaf3;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.loc-toolbar__info{color:#6b7280;font-size:13px}.loc-btn-add{color:#fff;cursor:pointer;background:#1759a0;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.loc-btn-add:hover{background:#124682}.loc-list-error{color:#dc2626;margin:0;padding:8px 20px;font-size:13px}.loc-table-wrap{background:#fff;border:1px solid #d9e2ef;width:100%;overflow-x:auto}.loc-table{border-collapse:collapse;width:100%;font-size:12px}.loc-table thead tr{background:#ebf2fd}.loc-table th{text-align:left;color:#374151;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.loc-table td{color:#374151;border-bottom:1px solid #e5eaf3;padding:4px 10px}.loc-table tbody tr:hover{background:#f5f8fc}.loc-state-cell{text-align:center;color:#9ca3af;padding:40px 0}.loc-th-c{text-align:center!important}.loc-th-l{text-align:left!important}.loc-td-c{text-align:center!important}.loc-tr-alt{background:#f9fafb}.loc-btn-edit{color:#1759a0;cursor:pointer;background:#ebf2fd;border:none;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.loc-btn-edit:hover{background:#d1e3f8}.loc-btn-delete{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:4px;padding:3px 8px;font-family:inherit;font-size:12px;font-weight:500}.loc-btn-delete:hover{background:#fecaca}.loc-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loc-modal{background:#fff;border-radius:10px;width:420px;max-width:95vw;box-shadow:0 8px 32px #0000002e}.loc-modal--sm{width:360px}.loc-modal__hdr{border-bottom:1px solid #e5eaf3;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.loc-modal__title{color:#1a2233;margin:0;font-size:16px;font-weight:700}.loc-modal__close{cursor:pointer;color:#6b7280;background:0 0;border:none;align-items:center;display:flex}.loc-modal__close:hover{color:#111}.loc-modal__body{padding:18px 20px}.loc-modal__ftr{border-top:1px solid #e5eaf3;padding:12px 20px 16px}.loc-modal__actions{justify-content:flex-end;gap:10px;display:flex}.loc-field{margin-bottom:12px}.loc-field__label{color:#374151;font-size:12px;font-weight:600}.loc-field__input{box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;transition:border .15s}.loc-field__input:focus{border-color:#1759a0}.loc-field__hint{color:#6b7280;margin:0;font-size:11px}.loc-req{color:#dc2626;margin-left:2px}.loc-form-error{color:#dc2626;margin:0;font-size:12px}.loc-btn-cancel{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.loc-btn-cancel:hover{background:#e5e7eb}.loc-btn-save{color:#fff;cursor:pointer;background:#1759a0;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.loc-btn-save:hover{background:#124682}.loc-btn-save:disabled{opacity:.6;cursor:not-allowed}.loc-btn-delete-confirm{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.loc-btn-delete-confirm:hover{background:#b91c1c}.loc-btn-delete-confirm:disabled{opacity:.6;cursor:not-allowed}.hm-page{background:#f3f6fb;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.hm-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:32px 0}.hm-title-section{text-align:center;margin-bottom:24px;position:relative}.hm-back-btn{color:#1759a0;cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:500;position:absolute;top:50%;left:0;transform:translateY(-50%)}.hm-back-btn:hover{text-decoration:underline}.hm-title{color:#1a2233;margin:0 0 6px;font-size:26px;font-weight:700}.hm-subtitle-row{justify-content:center;align-items:center;gap:10px;display:flex}.hm-sub-line{background:linear-gradient(90deg,#0000,#2878c8);flex:1;max-width:80px;height:1.5px}.hm-sub-text{color:#2878c8;letter-spacing:.2em;font-size:11px;font-weight:700}.hm-tabs{border-bottom:2px solid #e5eaf3;gap:8px;margin-bottom:18px;padding-bottom:0;display:flex}.hm-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:600}.hm-tab:hover{color:#1759a0}.hm-tab--active{color:#1759a0;border-bottom-color:#1759a0}.hm-card{box-shadow:none;background:#fff;border:1px solid #d9e2ef;border-left:none;border-right:none;border-radius:0;width:100%;overflow:hidden}.hm-toolbar{border-bottom:1.5px solid #e5eaf3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.hm-toolbar__info{color:#6b7280;font-size:13px}.hm-toolbar__filters{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.hm-btn-add{color:#fff;cursor:pointer;background:#1759a0;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.hm-btn-add:hover{background:#124682}.hm-btn-clear{color:#374151;cursor:pointer;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;padding:7px 12px;font-family:inherit;font-size:13px;font-weight:600}.hm-btn-clear:hover{background:#e5e7eb}.hm-list-error{color:#dc2626;margin:0;padding:8px 20px;font-size:13px}.hm-table-wrap{background:#fff;border:1px solid #d9e2ef;border-top:none;width:100%;overflow-x:auto}.hm-table{border-collapse:collapse;width:100%;font-size:12px}.hm-table thead tr{background:#ebf2fd}.hm-table th{text-align:left;color:#374151;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:5px 10px;font-size:12px;font-weight:600}.hm-table td{color:#374151;vertical-align:middle;border-bottom:1px solid #e5eaf3;padding:4px 10px;font-size:12px}.hm-table tbody tr:hover{background:#f5f8fc}.hm-state-cell{text-align:center;color:#9ca3af;padding:40px 0}.hm-th-c,.hm-td-c{text-align:center!important}.hm-tr-alt{background:#f9fafb}.hm-desc-cell{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.hm-status{text-transform:capitalize;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.hm-status--pending{color:#92400e;background:#fef3c7}.hm-status--approved{color:#065f46;background:#d1fae5}.hm-status--rejected{color:#991b1b;background:#fee2e2}.hm-btn-edit{color:#1759a0;cursor:pointer;background:#ebf2fd;border:none;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.hm-btn-edit:hover{background:#d1e3f8}.hm-btn-delete{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:4px;padding:3px 8px;font-family:inherit;font-size:12px;font-weight:500}.hm-btn-delete:hover{background:#fecaca}.hm-btn-approve{color:#065f46;cursor:pointer;background:#d1fae5;border:none;border-radius:4px;padding:3px 8px;font-family:inherit;font-size:12px;font-weight:500}.hm-btn-approve:hover{background:#a7f3d0}.hm-btn-reject{color:#991b1b;cursor:pointer;background:#fee2e2;border:none;border-radius:4px;padding:3px 8px;font-family:inherit;font-size:12px;font-weight:500}.hm-btn-reject:hover{background:#fecaca}.hm-toggle-label{color:#374151;cursor:pointer;align-self:flex-end;align-items:center;gap:6px;padding-bottom:8px;font-size:13px;font-weight:600;display:flex}.hm-radio-group{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.hm-radio-label{color:#374151;cursor:pointer;align-items:center;gap:5px;font-size:13px;font-weight:500;display:flex}.hm-days-badge{color:#7f1d1d;background:#ffbcbc;border-radius:12px;padding:4px 10px;font-size:12px;font-weight:700}.hm-row--today td{background:#ecfdf5!important}.hm-row--today td:first-child{box-shadow:inset 3px 0 #078e00}.hm-row--past td{color:#b91c1c}.hm-overlay{z-index:1000;box-sizing:border-box;background:#00000059;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.hm-modal{background:#fff;border-radius:10px;width:480px;max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0000002e}.hm-modal--sm{width:380px}.hm-modal--lg{width:520px}.hm-modal__hdr{border-bottom:1px solid #e5eaf3;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.hm-modal__title{color:#1a2233;margin:0;font-size:16px;font-weight:700}.hm-modal__close{cursor:pointer;color:#6b7280;background:0 0;border:none;align-items:center;display:flex}.hm-modal__body{padding:18px 20px}.hm-modal__ftr{border-top:1px solid #e5eaf3;padding:12px 20px 16px}.hm-modal__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.hm-field{margin-bottom:12px}.hm-field__label{color:#374151;font-size:12px;font-weight:600}.hm-field__input,.hm-field__select,.hm-field__textarea{box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;transition:border .15s}.hm-field__textarea{resize:vertical;min-height:72px}.hm-field__input:focus,.hm-field__select:focus,.hm-field__textarea:focus{border-color:#1759a0}.hm-field__hint{color:#6b7280;margin:0;font-size:11px}.hm-req{color:#dc2626;margin-left:2px}.hm-form-error{color:#dc2626;margin:0 0 8px;font-size:12px}.hm-btn-cancel{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.hm-btn-cancel:hover{background:#e5e7eb}.hm-btn-save{color:#fff;cursor:pointer;background:#1759a0;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.hm-btn-save:hover{background:#124682}.hm-btn-save:disabled{opacity:.6;cursor:not-allowed}.hm-btn-delete-confirm{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.hm-btn-delete-confirm:hover{background:#b91c1c}.hm-btn-delete-confirm:disabled{opacity:.6;cursor:not-allowed}.cmp-page{background:#f3f6fb;flex-direction:column;min-height:100vh;display:flex}.cmp-content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:32px 20px}.cmp-title-section{text-align:center;margin-bottom:28px;position:relative}.cmp-back-btn{color:#1759a0;cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:500;position:absolute;top:50%;left:0;transform:translateY(-50%)}.cmp-back-btn:hover{text-decoration:underline}.cmp-title{color:#1a2233;letter-spacing:.01em;margin:0 0 6px;font-size:26px;font-weight:700}.cmp-subtitle-row{justify-content:center;align-items:center;gap:10px;display:flex}.cmp-sub-line{background:linear-gradient(90deg,#0000,#2878c8);flex:1;max-width:80px;height:1.5px}.cmp-sub-text{color:#2878c8;letter-spacing:.2em;font-size:11px;font-weight:700}.cmp-card{background:#fff;border-radius:10px;padding:24px 24px 20px;box-shadow:0 1px 8px #18387812}.cmp-state{text-align:center;color:#9ca3af;margin:0;padding:40px 0}.cmp-form{flex-direction:column;gap:16px;display:flex}.cmp-field{flex-direction:column;gap:6px;display:flex}.cmp-field__label{color:#374151;font-size:12px;font-weight:600}.cmp-field__input{box-sizing:border-box;border:1.5px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:9px 11px;font-family:inherit;font-size:13px;transition:border .15s}.cmp-field__input:focus{border-color:#1759a0}.cmp-req{color:#dc2626;margin-left:2px}.cmp-form-error{color:#dc2626;margin:0;font-size:12px}.cmp-actions{border-top:1px solid #e5eaf3;justify-content:flex-end;align-items:center;gap:10px;margin-top:8px;padding-top:16px;display:flex}.cmp-actions__right{gap:10px;display:flex}.cmp-btn-cancel{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:6px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:600}.cmp-btn-cancel:hover{background:#e5e7eb}.cmp-btn-save{color:#fff;cursor:pointer;background:#1759a0;border:none;border-radius:6px;padding:8px 20px;font-family:inherit;font-size:13px;font-weight:600}.cmp-btn-save:hover{background:#124682}.cmp-btn-save:disabled,.cmp-btn-cancel:disabled{opacity:.6;cursor:not-allowed}.rpt-page{background:#edf2f9;flex-direction:column;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;display:flex}.rpt-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:0 0 40px}.rpt-title-section{flex-direction:column;align-items:center;padding:20px 0 18px;display:flex;position:relative}.rpt-title{color:#1a2e4a;letter-spacing:-.3px;margin:0 0 8px;font-size:34px;font-weight:800}.rpt-subtitle-row{align-items:center;gap:14px;display:flex}.rpt-sub-line{background:#94a3b8;width:70px;height:1px}.rpt-sub-text{color:#6b7280;letter-spacing:5px;font-size:12px;font-weight:500}.rpt-card{background:#fff;border-radius:8px;margin:0 24px;overflow:hidden;box-shadow:0 1px 6px #00000017}.rpt-no-access{text-align:center;color:#6b7280;padding:48px 20px;font-size:14px}.rpt-tabs-row{border-bottom:1px solid #e5e7eb;padding:14px 20px 0}.rpt-tabs{flex-wrap:wrap;gap:2px;display:flex}.rpt-tab{color:#375274;cursor:pointer;background:#f3f7fc;border:1px solid #e5e7eb;border-bottom:none;border-radius:6px 6px 0 0;padding:10px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:14px;font-weight:700}.rpt-tab:hover:not(.rpt-tab--active){background:#e9f0fb}.rpt-tab--active{color:#fff;background:#1a56a2;border-color:#1a56a2}.rpt-subtabs-row{border-bottom:1px solid #e5e7eb;padding:12px 20px 0}.rpt-subtabs{border:1px solid #d1d5db;border-radius:6px;gap:0;margin-bottom:12px;display:inline-flex;overflow:hidden}.rpt-subtab{color:#445973;cursor:pointer;background:#f8fbff;border:none;border-right:1px solid #d1d5db;padding:8px 16px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:700}.rpt-subtab:last-child{border-right:none}.rpt-subtab:hover:not(.rpt-subtab--active){background:#eef4fb}.rpt-subtab--active{color:#fff;background:#1a56a2}.rpt-filters{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 20px;display:flex}.rpt-filter-item{align-items:center;gap:6px;display:flex}.rpt-filter-label{color:#374151;font-size:13px;font-weight:700}.rpt-select{color:#374151;appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 8px center no-repeat;border:1.5px solid #d1d5db;border-radius:6px;min-width:140px;height:34px;padding:0 28px 0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px}.rpt-select:focus{border-color:#1a56a2;outline:none}.rpt-checkbox-label{color:#374151;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.rpt-date-range{align-items:center;gap:6px;display:flex}.rpt-date-input,.rpt-year-input{color:#374151;background:#fff;border:1.5px solid #d1d5db;border-radius:6px;height:34px;padding:0 10px;font-size:13px}.rpt-year-input{width:90px}.rpt-date-sep{color:#6b7280;font-size:13px}.rpt-period{align-items:center;gap:10px;display:flex}.rpt-toggle{border:1px solid #d1d5db;border-radius:6px;display:inline-flex;overflow:hidden}.rpt-toggle-btn{color:#374151;cursor:pointer;background:#fff;border:none;border-right:1px solid #d1d5db;padding:6px 12px;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600}.rpt-toggle-btn:last-child{border-right:none}.rpt-toggle-btn--active{color:#fff;background:#1a56a2}.rpt-btn-fetch{color:#fff;cursor:pointer;background:#1a56a2;border:none;border-radius:6px;padding:7px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600}.rpt-btn-fetch:hover{background:#154488}.rpt-btn-clear{color:#374151;cursor:pointer;background:#e2e8f0;border:none;border-radius:6px;padding:7px 16px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:600}.rpt-btn-clear:hover{background:#cbd5e1}.rpt-btn-export{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:6px;margin-left:auto;padding:7px 20px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700}.rpt-btn-export:hover:not(:disabled){background:#15803d}.rpt-btn-export:disabled{opacity:.6;cursor:not-allowed}.rpt-list-error{color:#dc2626;background:#fef2f2;border-bottom:1px solid #fecaca;margin:0;padding:10px 20px;font-size:13px}.rpt-table-wrap{width:100%;overflow-x:auto}.rpt-table{border-collapse:collapse;width:100%;font-size:12px}.rpt-table thead tr{background:#eef3fb;border-bottom:2px solid #d1d5db}.rpt-table th{color:#1a3a6e;white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}.th-l{text-align:left}.th-c{text-align:center}.rpt-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .1s}.rpt-table tbody tr:hover{background:#f5f8fc!important}.tr-alt{background:#fafbfd}.rpt-table td{color:#374151;white-space:nowrap;padding:6px 10px;font-size:12px}.rpt-state-cell{text-align:center;color:#6b7280;padding:48px 0;font-size:14px}.rpt-footer{justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.rpt-entry-info{color:#6b7280;font-size:13px}.rpt-pagination{align-items:center;gap:4px;display:flex}.page-btn{color:#374151;cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:5px;min-width:32px;height:32px;padding:0 10px;font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:500;transition:all .15s}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-btn:hover:not(.page-btn--active):not(:disabled){color:#1a56a2;border-color:#1a56a2}.page-btn--active{color:#fff;cursor:default;background:#1a56a2;border-color:#1a56a2;font-weight:700}
