@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/variable/pretendardvariable.css");:root{--font-body:"Pretendard Variable","Pretendard","Apple SD Gothic Neo","Noto Sans KR",sans-serif;--font-title:"Pretendard Variable","Pretendard","Apple SD Gothic Neo","Noto Sans KR",sans-serif;--bg:#f6f8fc;--bg-elevated:#ffffff;--bg-panel:#f7f9ff;--bg-nav:#ffffff;--text:#111827;--text-subtle:#475467;--line:#e4e7ec;--line-strong:#d0d5dd;--brand:#5a78ec;--brand-strong:#4a66d3;--brand-soft:#eef2ff;--danger:#d92d20;--danger-soft:#fee4e2;--amber:#b54708;--amber-soft:#fef0c7;--ok:#1d4ed8;--ok-soft:#dbeafe;--surface-soft:#f8faff;--surface-soft-2:#f4f6fb;--surface-hover:#f2f4f7;--surface-selected:#e8eeff;--surface-selected-strong:#eff4ff;--surface-card:#fcfdff;--surface-gradient-start:#ffffff;--surface-gradient-end:#f8faff;--scrollbar-track:#eef2f8;--scrollbar-thumb:#c7d2e8;--scrollbar-thumb-hover:#9fb0cf;--text-soft:#344054;--text-faint:#667085;--focus-ring:#d4ddff;--focus-border:#8ea6ff;--brand-border:#d7defc;--brand-border-soft:#d2dcff;--brand-border-strong:#c7d4ff;--modal-overlay:rgba(16,24,40,0.34);--chart-grid:#d9e1ef;--chart-text:#5d6b80;--chart-revenue:#7a6ff0;--chart-cost:#2fb6a5;--chart-profit:#4aa4ff;--chart-margin:#ef5da8;--chart-regular:#7a6ff0;--chart-freelancer:#3ebfb2;--chart-fixed:#5a8dff;--chart-sga:#aa7dff;--chart-secondary:#5e82ff;--chart-accent:#5fd2ff;--shadow-sm:0 1px 2px rgba(16,24,40,0.04);--shadow-md:0 10px 24px rgba(16,24,40,0.08)}html[data-theme=dark]{--bg:#0d1420;--bg-elevated:#121b29;--bg-panel:#172235;--bg-nav:#101826;--text:#eef4ff;--text-subtle:#98a6bb;--line:#263345;--line-strong:#33445b;--brand:#84a0ff;--brand-strong:#6f8cf2;--brand-soft:rgba(132,160,255,0.16);--danger:#ff7b72;--danger-soft:rgba(255,123,114,0.16);--amber:#ffcd73;--amber-soft:rgba(255,205,115,0.16);--ok:#8eb6ff;--ok-soft:rgba(142,182,255,0.16);--surface-soft:#121d2d;--surface-soft-2:#162232;--surface-hover:#1a2537;--surface-selected:#1c2b46;--surface-selected-strong:#21345a;--surface-card:#131d2c;--surface-gradient-start:#151f31;--surface-gradient-end:#101826;--scrollbar-track:#1a2535;--scrollbar-thumb:#445674;--scrollbar-thumb-hover:#5c7296;--text-soft:#d5deee;--text-faint:#a5b3c6;--focus-ring:rgba(132,160,255,0.26);--focus-border:#84a0ff;--brand-border:#334562;--brand-border-soft:#405881;--brand-border-strong:#4f6ea7;--modal-overlay:rgba(5,9,15,0.7);--chart-grid:#2a3a51;--chart-text:#b9c7db;--chart-revenue:#9b93ff;--chart-cost:#45d3be;--chart-profit:#67b5ff;--chart-margin:#ff7ab8;--chart-regular:#9b93ff;--chart-freelancer:#54d9ce;--chart-fixed:#7ca8ff;--chart-sga:#c19cff;--chart-secondary:#85a3ff;--chart-accent:#7ce0ff;--shadow-sm:0 1px 2px rgba(3,6,12,0.42);--shadow-md:0 18px 40px rgba(3,6,12,0.56)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:var(--font-body),sans-serif;color:var(--text);background:radial-gradient(circle at 10% 2%,rgba(51,92,255,.08),transparent 26%),radial-gradient(circle at 88% 100%,rgba(51,92,255,.06),transparent 35%),var(--bg)}html[data-theme=dark] body{background:radial-gradient(circle at 10% 2%,rgba(93,119,255,.22),transparent 26%),radial-gradient(circle at 88% 100%,rgba(70,112,255,.12),transparent 35%),var(--bg)}a{color:inherit;text-decoration:none}.auth-gate{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-gate__card{width:min(520px,100%);border:1px solid var(--line);border-radius:16px;background:var(--bg-elevated);box-shadow:var(--shadow-md);padding:22px}.auth-gate__card h2{margin:0 0 8px;font-size:22px}.auth-gate__card p{margin:0;color:var(--text-subtle)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(540px,100%);border:1px solid var(--line);border-radius:20px;background:var(--bg-elevated);box-shadow:var(--shadow-md);padding:26px;display:flex;flex-direction:column;gap:18px}.login-card__utility{display:flex;justify-content:flex-end}.login-brand{display:flex;align-items:center;gap:14px}.login-brand h1{margin:0;font-size:28px}.login-brand p{margin:4px 0 0;color:var(--text-subtle);font-size:14px}.login-brand__logo{width:58px;height:58px;border-radius:12px;object-fit:contain;border:1px solid var(--line);background:var(--bg-elevated);padding:6px}.login-logo-help{border:1px dashed var(--brand-border-strong);background:var(--surface-soft);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--text-soft)}.google-login-button{min-height:44px;width:100%;display:flex;justify-content:center}.login-actions{display:flex;flex-direction:column;align-items:center;gap:8px}.login-status{margin:0;color:var(--text-subtle);font-size:13px}.login-progress{color:var(--brand-strong)}.login-error,.login-progress{margin:0;font-size:13px;font-weight:600}.login-error{color:var(--danger)}.login-dev-panel{width:100%;border:1px dashed var(--brand-border-soft);background:var(--surface-soft);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}.login-dev-panel strong{font-size:14px}.login-dev-panel p{margin:0;color:var(--text-subtle);font-size:12px}.login-dev-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-gap:8px;gap:8px}.login-dev-quick{display:flex;flex-wrap:wrap;gap:6px}.erp-shell{--lnb-width:258px;display:grid;grid-template-columns:var(--lnb-width) minmax(0,1fr);min-height:100vh}.erp-shell[data-collapsed=true]{--lnb-width:72px}.erp-nav{border-right:1px solid var(--line);background:var(--bg-nav);padding:16px 12px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.erp-nav__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.erp-nav__logo{font-family:var(--font-title),sans-serif;font-size:17px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.erp-nav__toggle{width:36px;height:36px;border:1px solid transparent;border-radius:11px;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.erp-nav__toggle:hover{background:var(--brand-soft);border-color:var(--brand-border)}.erp-nav__toggle-icon-wrap{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--surface-soft-2)}.erp-nav__toggle-icon{width:16px;height:16px;color:var(--text-faint)}.erp-nav__toggle:hover .erp-nav__toggle-icon-wrap{background:var(--surface-selected)}.erp-nav__toggle:hover .erp-nav__toggle-icon{color:var(--brand)}.erp-shell[data-collapsed=true] .erp-nav__links a span,.erp-shell[data-collapsed=true] .erp-nav__logo,.erp-shell[data-collapsed=true] .erp-nav__section-title{display:none}.erp-shell[data-collapsed=true] .erp-nav__links a .erp-nav__icon-wrap{display:inline-flex}.erp-nav__section-title{font-size:10px;color:var(--text-subtle);margin:12px 8px 8px;text-transform:uppercase;letter-spacing:.08em}.erp-nav__links{display:flex;flex-direction:column;gap:4px}.erp-nav__links a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:11px;color:var(--text-subtle);transition:.12s ease;border:1px solid transparent;font-size:13.5px;font-weight:500}.erp-nav__icon-wrap{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:8px;background:var(--surface-soft-2)}.erp-nav__icon{width:16px;height:16px;color:var(--text-faint)}.erp-nav__links a:hover,.erp-nav__links a[data-active=true]{color:var(--text);background:var(--brand-soft);border-color:var(--brand-border)}.erp-nav__links a:hover .erp-nav__icon,.erp-nav__links a[data-active=true] .erp-nav__icon{color:var(--brand)}.erp-nav__links a:hover .erp-nav__icon-wrap,.erp-nav__links a[data-active=true] .erp-nav__icon-wrap{background:var(--surface-selected)}.erp-main{padding:18px;min-width:0}.erp-main__inner{width:min(1620px,100%);margin:0 auto;min-width:0}.erp-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.erp-topbar__title{font-family:var(--font-title),sans-serif;font-size:26px;letter-spacing:-.02em;font-weight:750}.erp-filters{display:flex;gap:8px;flex-wrap:wrap}.erp-filter,.search-input,.select-input,.text-input,textarea{border:1px solid var(--line);background:var(--bg-elevated);border-radius:11px;min-height:38px;padding:0 11px;color:var(--text);font:inherit;font-size:13.5px}textarea{min-height:82px;padding-top:8px;padding-bottom:8px}.erp-filter,.select-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='%23667085' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - 11px) 50%;background-size:14px 14px;padding-right:34px}.cell-input:focus,.erp-filter:focus,.search-input:focus,.select-input:focus,.text-input:focus,textarea:focus{outline:2px solid var(--focus-ring);border-color:var(--focus-border)}.panel{border:1px solid var(--line);border-radius:16px;background:var(--bg-elevated);padding:14px;box-shadow:var(--shadow-sm);min-width:0}.panel-title{font-family:var(--font-title),sans-serif;font-size:16px;margin:0 0 10px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.toolbar,.toolbar-spread{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.toolbar-spread{justify-content:space-between}.toolbar-left,.toolbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.toolbar-right{justify-content:flex-end}.toolbar .erp-filter,.toolbar .menu-selector,.toolbar .search-input,.toolbar .searchable-select,.toolbar .select-input,.toolbar .text-input{flex:1 1 180px;min-width:0}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px}.grid-2,.grid-3{display:grid;gap:12px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}.kpi-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:linear-gradient(180deg,var(--surface-gradient-start),var(--surface-gradient-end))}.kpi-card h3{margin:0;font-size:12px;color:var(--text-subtle);font-weight:600}.kpi-card strong{display:block;margin-top:5px;font-size:23px;font-family:var(--font-title),sans-serif}.kpi-card small{display:block;margin-top:4px;color:var(--text-subtle)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg-elevated);width:100%;max-width:100%;min-width:0;scrollbar-gutter:stable both-edges}.allocation-grid__list-wrap{max-height:min(72vh,980px)}.table-wrap--interactive{position:relative;resize:vertical;max-height:min(68vh,760px)}.table-wrap--interactive table.table--resizable{table-layout:fixed;width:max-content;min-width:0}.table-wrap::-webkit-scrollbar{width:12px;height:12px}.table-wrap::-webkit-scrollbar-track{background:var(--scrollbar-track)}.table-wrap::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px;border:2px solid var(--scrollbar-track)}.table-wrap::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}table{width:100%;border-collapse:collapse;min-width:0}td,th{border-bottom:1px solid var(--line);padding:4px 6px;font-size:11px;text-align:left;white-space:nowrap;vertical-align:middle;line-height:1.2;overflow:hidden;text-overflow:ellipsis;max-width:0}th{top:0;background:var(--bg-panel);z-index:1;font-weight:600;color:var(--text-soft)}th,th.table-header--resizable{position:-webkit-sticky;position:sticky}th.table-header--resizable{overflow:visible;padding-right:14px}.table-column-resize-handle{position:absolute;top:0;right:-4px;width:10px;height:100%;cursor:col-resize;touch-action:none;z-index:6}.table-column-resize-handle:after{content:"";position:absolute;top:18%;bottom:18%;left:50%;width:2px;transform:translateX(-50%);border-radius:999px;background:transparent;transition:background .12s ease}body.table-column-resize-active .table-column-resize-handle:after,th.table-header--resizable:hover .table-column-resize-handle:after{background:var(--focus-border)}.table-wrap .h-stack,.table-wrap .stack{gap:4px;min-width:0}.table-wrap .h-stack>*,.table-wrap .stack>*{min-width:0;overflow:hidden;text-overflow:ellipsis}.table-column-menu{position:relative;display:inline-flex;z-index:8}.table-column-menu__toggle{display:inline-flex;align-items:center;gap:4px}.table-column-menu__toggle svg{display:block;flex-shrink:0}.table-column-menu__btn-label{line-height:1}.table-column-menu__panel{position:absolute;top:calc(100% + 6px);left:0;min-width:240px;max-width:min(320px,calc(100vw - 32px));max-height:min(45vh,420px);overflow:auto;padding:10px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface-card,rgba(255,255,255,.98));box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.action-strip--injected{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface-card)}.table-column-menu__title{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--text)}.table-column-menu__actions{display:flex;justify-content:flex-end;gap:6px;margin-bottom:8px}.table-column-menu__grid{display:grid;grid-gap:6px;gap:6px}.table-column-menu__option{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text)}.table-column-menu__option input{margin:0}.table-wrap .badge,.table-wrap .status-tag,.table-wrap .worker-type-tag{font-size:11px}.table-wrap .badge{padding:2px 7px}.table-wrap .status-tag,.table-wrap .worker-type-tag{min-width:50px;padding:3px 8px}.table-wrap .button{min-height:26px;padding:3px 8px;border-radius:8px;font-size:11px}.table-wrap .button.compact{min-height:22px;padding:1px 6px;font-size:10px}.table-wrap .search-input,.table-wrap .searchable-select__control,.table-wrap .searchable-select__input,.table-wrap .select-input,.table-wrap .text-input,.table-wrap textarea{min-height:30px;font-size:12px}.table-wrap .searchable-select__input{min-height:28px;padding:0 8px}.table-wrap .searchable-select__clear,.table-wrap .searchable-select__toggle{min-height:26px;min-width:26px;font-size:14px}.table-wrap--has-sticky-left .table-cell--sticky-left,.table-wrap--has-sticky-right .table-cell--sticky-right{position:-webkit-sticky;position:sticky;z-index:2}.table-wrap--has-sticky-left .table-cell--sticky-left{left:0;box-shadow:10px 0 14px -14px rgba(15,23,42,.45)}.table-wrap--has-sticky-right .table-cell--sticky-right{right:0;box-shadow:-10px 0 14px -14px rgba(15,23,42,.45)}.table-wrap--has-sticky-left tbody tr>.table-cell--sticky-left,.table-wrap--has-sticky-right tbody tr>.table-cell--sticky-right{background:var(--bg-elevated)}.table-wrap--has-sticky-left thead tr>.table-cell--sticky-left,.table-wrap--has-sticky-right thead tr>.table-cell--sticky-right{background:var(--bg-panel);z-index:4}.row-hover:hover>.table-cell--sticky-left,.row-hover:hover>.table-cell--sticky-right{background:var(--bg-panel)}tr[style*=surface-selected-strong]>.table-cell--sticky-left,tr[style*=surface-selected-strong]>.table-cell--sticky-right{background:var(--surface-selected-strong)}.grid-sort-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:0;display:inline-flex;align-items:center;gap:4px;font:inherit;color:inherit;cursor:pointer}.grid-sort-indicator{display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-subtle);min-width:14px;margin-left:4px;flex-shrink:0}.grid-sort-indicator svg{display:block}.row-hover:hover{background:var(--bg-panel)}.expand-toggle{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--bg-elevated);color:var(--text-subtle);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.12s ease}.expand-toggle:hover{border-color:var(--brand-border-strong);background:var(--brand-soft);color:var(--brand)}.expand-toggle__chevron{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;transform:rotate(0deg);transition:transform .14s ease}.expand-toggle[aria-expanded=true] .expand-toggle__chevron{transform:rotate(90deg)}.contract-group-row td{background:linear-gradient(180deg,var(--surface-gradient-start) 0,var(--surface-gradient-end) 100%);font-weight:600;padding-top:4px;padding-bottom:4px}.contract-group-row--project td{border-bottom-color:#cbd5e1}.contract-group-row:hover td{background:linear-gradient(180deg,var(--surface-soft-2) 0,var(--brand-soft) 100%)}.contract-child-row td{background:var(--bg-elevated);padding-top:4px;padding-bottom:4px}.contract-child-row--project-contract td{background:linear-gradient(180deg,#fbfcff,#f3f6fb)}.contract-child-row .stack,.contract-group-row .stack{gap:2px!important}.contract-child-row .stack>:last-child,.contract-group-row .stack>:last-child{font-size:10px!important;line-height:1.15;color:var(--text-faint)!important}.contract-child-row strong,.contract-group-row strong{font-size:12px!important;line-height:1.15}.contract-kind-chip,.contract-mode-chip{display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:999px;border:1px solid var(--line);padding:2px 7px;font-size:10px;font-weight:700;line-height:1}.contract-kind-chip--project{color:#155eef;background:#e0ebff;border-color:#b2ccff}.contract-kind-chip--contract{color:#475467;background:#f2f4f7;border-color:#d0d5dd}.contract-mode-chip--monthly{color:#175cd3;background:#eff8ff;border-color:#b2ddff}.contract-mode-chip--milestone{color:#7a2e0e;background:#ffead5;border-color:#f7b27a}.contract-mode-chip--custom{color:#6941c6;background:#f4ebff;border-color:#d9c2ff}.allocation-grid__list-wrap td,.allocation-grid__list-wrap th{padding:4px 6px;font-size:11px;line-height:1.15}.allocation-grid__list-wrap .badge,.allocation-grid__list-wrap .worker-type-tag{font-size:10px}.allocation-grid__list-wrap .badge{padding:1px 6px}.allocation-grid__list-wrap .worker-type-tag{min-width:52px;padding:2px 7px}.allocation-grid__list-wrap .mm-month-cell{font-size:11px;border-radius:6px}.allocation-grid__list-wrap .mm-month-cell__content{gap:1px}.allocation-grid__list-wrap .mm-month-cell__meta{font-size:9px}.allocation-grid__list-wrap .mm-month-cell__contract{margin-top:1px;padding:1px 4px;font-size:8px}.cell-input{width:78px;border:1px solid var(--line);border-radius:8px;height:30px;padding:0 8px;background:var(--bg-elevated)}.cell-input.missing{border-color:var(--danger);background:var(--danger-soft)}.mm-month-cell{text-align:center;font-size:12px;color:#98a2b3;background:var(--bg-elevated);border:1px solid transparent;border-radius:8px;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.mm-month-cell--heat{font-weight:700;box-shadow:inset 0 0 0 1px rgba(50,95,184,.16)}.mm-month-cell__content{display:flex;flex-direction:column;align-items:center;gap:2px}.mm-month-cell__meta{display:block;font-size:10px;line-height:1.2;font-weight:600;color:currentColor;opacity:.88}.mm-month-cell__contract{display:inline-flex;align-items:center;justify-content:center;margin-top:2px;padding:1px 5px;border-radius:999px;font-size:9px;line-height:1.2;font-weight:800;letter-spacing:.01em;border:1px solid var(--brand-border-strong);background:var(--surface-selected-strong);color:var(--ok)}.mm-month-cell--heat .mm-month-cell__contract{border-color:rgba(255,255,255,.52);background:rgba(15,23,42,.18);color:#f8fafc}.rate-gap{font-weight:700}.rate-gap.positive{color:#1e40af}.rate-gap.negative{color:#b45309}.rate-gap.neutral{color:#475467}.resizable-grid-table td,.resizable-grid-table th{overflow:hidden;text-overflow:ellipsis}.badge{border-radius:999px;padding:3px 9px;font-size:12px;border:1px solid var(--line);background:var(--bg-elevated)}.badge.alert{color:var(--danger);border-color:#fecaca;background:var(--danger-soft)}.badge.warn{color:var(--amber);border-color:#fedf89;background:var(--amber-soft)}.badge.ok{color:var(--ok);border-color:#bfdbfe;background:var(--ok-soft)}.status-tag{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1;border:1px solid transparent}.status-tag.planned{color:#92400e;background:#fff7ed;border-color:#fed7aa}.status-tag.active{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.status-tag.closed{color:#475467;background:#f2f4f7;border-color:#d0d5dd}.worker-type-tag{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1;border:1px solid transparent}.worker-type-tag--regular{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.worker-type-tag--freelancer{color:#7a284a;background:#fff1f6;border-color:#f9c5d8}.button{border:1px solid var(--line-strong);background:var(--bg-elevated);border-radius:11px;padding:8px 12px;cursor:pointer;font:inherit;color:var(--text);min-height:36px;font-size:13.5px;font-weight:600}.button:hover{border-color:var(--line-strong);background:var(--surface-hover)}.button.primary{border-color:var(--brand);background:var(--brand);color:#fff}.button.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong)}.button.ghost{background:transparent}.button[disabled]{cursor:not-allowed;opacity:.6}.button.compact{padding:4px 10px;border-radius:9px;font-size:12.5px;min-height:30px}.button--icon-only{font-size:14px;line-height:1}.button--icon-only,.icon-btn{min-width:30px;padding:0;justify-content:center}.icon-btn{display:inline-flex;align-items:center;max-width:30px;min-height:30px;gap:0}.icon-btn.compact{min-width:26px;max-width:26px;min-height:26px}.icon-btn>svg{display:block;flex-shrink:0}.icon-btn__glyph{display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;line-height:1;font-family:Inter,system-ui,-apple-system,sans-serif}.icon-btn.compact .icon-btn__glyph{font-size:13px}.table-wrap .icon-btn{min-width:24px;max-width:24px;min-height:24px}.table-wrap .icon-btn .icon-btn__glyph{font-size:13px}.button-icon-leading,.button-icon-trailing{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:currentColor}.button-icon-leading{margin-right:4px;opacity:.95}.button-icon-trailing{margin-left:4px;opacity:.72}.button:not(.primary) .button-icon-leading{color:var(--brand-strong)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon-btn.danger{color:#dc2626;border-color:#fca5a5}.icon-btn.danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171}.collapse-chevron{transition:transform .15s ease;transform:rotate(0deg)}.collapse-chevron[data-open=true]{transform:rotate(90deg)}.button-icon{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;margin-right:4px;font-size:9px;line-height:1;opacity:.72}.button.compact .button-icon{width:10px;height:10px;margin-right:3px;font-size:8px}.plus-badge{display:inline-flex;align-items:center;justify-content:center;min-width:14px;color:currentColor;font-size:16px;font-weight:700;line-height:1;margin-right:2px;flex-shrink:0}.button:not(.primary) .plus-badge{color:var(--brand-strong)}.split-add{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.split-add__pair{display:inline-flex;align-items:center}.split-add__main{border-top-right-radius:0;border-bottom-right-radius:0}.split-add__toggle{width:30px;min-width:30px;padding:0;border-top-left-radius:0;border-bottom-left-radius:0}.split-add__selector{min-width:120px}.menu-selector{position:relative;display:inline-flex;flex-direction:column;align-items:stretch}.menu-selector__toggle{display:inline-flex;align-items:center;gap:6px;min-width:108px;justify-content:flex-start;padding-inline:12px 10px}.menu-selector__caret{font-size:12px;line-height:1;opacity:.9;margin-left:1px}.menu-selector__list{position:absolute;top:calc(100% + 6px);right:0;left:auto;z-index:40;min-width:188px;max-width:min(320px,calc(100vw - 24px));padding:6px;border-radius:10px;border:1px solid var(--line-strong);background:var(--bg-elevated);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:6px}.menu-selector__item{border:1px solid transparent;background:var(--bg-elevated);color:var(--text);border-radius:8px;padding:7px 10px;font:inherit;cursor:pointer;text-align:left;display:block;text-decoration:none}.menu-selector__item:hover{background:var(--brand-soft);border-color:var(--brand-border-soft)}.menu-selector__item:disabled{opacity:.6;cursor:not-allowed}.searchable-select{position:relative;width:100%}.searchable-select__control{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;border:1px solid var(--line);background:var(--bg-elevated);border-radius:11px;min-height:38px;padding-right:2px}.searchable-select__input{width:100%;border:0;outline:none;background:transparent;color:var(--text);font:inherit;font-size:13.5px;padding:0 10px;min-height:36px}.searchable-select__clear,.searchable-select__toggle{border:0;background:transparent;color:var(--text-faint);cursor:pointer;min-height:34px;min-width:34px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:16px;line-height:1}.searchable-select__clear:hover,.searchable-select__toggle:hover{color:var(--text-soft);background:var(--surface-hover)}.searchable-select.is-open .searchable-select__control{border-color:var(--focus-border);box-shadow:0 0 0 2px var(--focus-ring)}.searchable-select.is-disabled .searchable-select__control{opacity:.6;cursor:not-allowed}.searchable-select__menu{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:240px;overflow:auto;z-index:1400;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg-elevated);box-shadow:var(--shadow-md);padding:6px;display:flex;flex-direction:column;gap:4px}.searchable-select__menu--portal{left:auto;right:auto}.searchable-select__option{border:1px solid transparent;border-radius:8px;background:var(--bg-elevated);color:var(--text);cursor:pointer;font:inherit;text-align:left;padding:7px 10px}.searchable-select__option:hover{background:var(--brand-soft);border-color:var(--brand-border-soft)}.searchable-select__option.is-selected{background:var(--surface-selected-strong);border-color:var(--brand-border-strong);color:var(--ok);font-weight:700}.searchable-select__empty{font-size:13px;color:var(--text-faint);padding:8px 10px}.searchable-select.is-multi .searchable-select__control{flex-wrap:wrap;gap:3px;padding:3px 28px 3px 6px;min-height:34px;height:auto}.searchable-select__chips{display:flex;flex-wrap:wrap;gap:3px}.searchable-select__chip{display:inline-flex;align-items:center;gap:2px;background:var(--brand-soft,#e0ebff);border:1px solid var(--brand-strong,#93c5fd);border-radius:4px;padding:1px 4px;font-size:11px;line-height:1.3;color:var(--text);max-width:140px}.searchable-select__chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select__chip-remove{all:unset;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:12px;line-height:1;color:var(--text-subtle);cursor:pointer;border-radius:2px;flex-shrink:0}.searchable-select__chip-remove:hover{color:var(--text);background:rgba(0,0,0,.08)}.searchable-select.is-multi .searchable-select__input{flex:1 1 60px;min-width:60px;padding:2px 4px}.searchable-select__check{display:inline-flex;align-items:center;justify-content:center;width:16px;font-size:11px;flex-shrink:0;color:var(--brand-strong,#3b82f6)}.action-strip{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-card)}.table-head-title{font-size:14px;font-weight:600;color:var(--text-soft)}.grid-action-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-card)}.grid-action-bar .toolbar{gap:6px}.h-stack{display:flex;align-items:center;gap:8px}.stack{display:flex;flex-direction:column;gap:12px}.pagination{display:flex;align-items:center;justify-content:center;gap:8px}.mui-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:10px;gap:10px}.mui-pagination__center,.mui-pagination__left,.mui-pagination__right{display:flex;align-items:center;gap:8px}.mui-pagination__left{justify-self:start}.mui-pagination__center{justify-self:center}.mui-pagination__right{justify-self:end}.mui-pagination__left span,.mui-pagination__range{font-size:13px;color:var(--text-subtle)}.mui-pagination__actions{display:flex;align-items:center;gap:4px}@media (max-width:960px){.mui-pagination{grid-template-columns:1fr;justify-items:center}.mui-pagination__center,.mui-pagination__left,.mui-pagination__right{justify-self:center}}.mui-page-btn{min-width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--bg-elevated);color:var(--text);cursor:pointer;padding:0 6px}.mui-page-btn:hover{border-color:var(--line-strong);background:var(--surface-hover)}.mui-page-btn.is-active{background:var(--brand-soft);border-color:var(--brand-border-strong);color:var(--brand-strong);font-weight:700}.mui-page-btn:disabled{opacity:.45;cursor:not-allowed}.mui-page-ellipsis{min-width:18px;text-align:center;color:var(--text-subtle);font-size:13px}.modal-backdrop{position:fixed;inset:0;background:var(--modal-overlay);display:flex;align-items:center;justify-content:center;padding:16px;z-index:999}.modal{width:min(980px,100%);max-height:calc(100vh - 40px);overflow:auto;border-radius:16px;border:1px solid var(--line);background:var(--bg-elevated);box-shadow:var(--shadow-md);padding:20px}.modal--wide{width:min(1180px,96vw)}.modal--medium{width:min(820px,94vw)}.modal--fullscreen{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);min-height:calc(100vh - 16px);border-radius:12px}.contract-modal{display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}.contract-modal__body{flex:1 1 auto;min-height:0;overflow:auto;padding-bottom:16px}.modal-footer{position:-webkit-sticky;position:sticky;bottom:0;background:var(--bg-elevated);border-top:1px solid var(--line);margin-top:14px;padding:12px 0 4px;justify-content:flex-end;gap:8px}.modal-footer,.toast-viewport{display:flex;align-items:center}.toast-viewport{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:min(760px,calc(100vw - 24px));z-index:1200;flex-direction:column;gap:10px;pointer-events:none}.toast{width:100%;max-width:760px;border-radius:14px;border:1px solid var(--line);background:var(--bg-elevated);box-shadow:var(--shadow-md);padding:14px 16px;font-size:15px;font-weight:600;line-height:1.4;color:var(--text)}.toast--ok{border-color:#bfdbfe;background:#eff6ff}.toast--warn{border-color:#fedf89;background:#fffbeb}.toast--alert{border-color:#fecaca;background:#fef2f2}.form-grid{display:grid;grid-gap:14px;gap:14px}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;color:var(--text-soft);font-weight:600;letter-spacing:.01em}.input-error{border-color:#f97066!important;box-shadow:0 0 0 3px rgba(249,112,102,.16)}.form-error-list{display:flex;flex-wrap:wrap;gap:8px}.contract-role-card{border:1px solid var(--line);border-radius:16px;background:var(--bg-elevated);box-shadow:var(--shadow-sm);padding:16px}.contract-role-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.contract-role-card__assignments{margin-top:14px;padding:0;overflow:hidden}.margin-sim-target{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}.margin-sim-target__value{font-family:var(--font-title),sans-serif;font-size:34px;font-weight:780;letter-spacing:-.02em;color:var(--brand)}.theme-toggle{gap:6px}.theme-toggle,.theme-toggle__icon{display:inline-flex;align-items:center}.theme-toggle__icon{justify-content:center}.theme-toggle__icon,.theme-toggle__icon svg{width:16px;height:16px}.theme-toggle:hover .theme-toggle__icon{color:var(--brand)}.margin-sim-slider{width:100%;accent-color:var(--brand)}.margin-sim-quick{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}@media (max-width:1160px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1024px){.erp-shell{grid-template-columns:1fr}.erp-nav{position:static;height:auto}.erp-shell[data-collapsed=true]{--lnb-width:100%}.erp-shell[data-collapsed=true] .erp-nav__links a span,.erp-shell[data-collapsed=true] .erp-nav__logo,.erp-shell[data-collapsed=true] .erp-nav__section-title{display:initial}.form-grid-2,.form-grid-3,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.erp-topbar{flex-direction:column;align-items:flex-start}.erp-main{padding:14px}.action-strip,.panel-head,.toolbar-spread{flex-direction:column;align-items:stretch}.toolbar-left,.toolbar-right{width:100%;justify-content:flex-start}.menu-selector{width:100%}.login-dev-form{grid-template-columns:1fr}table{min-width:760px}}@media (max-width:768px){.erp-main{padding:12px}.erp-topbar__title{font-size:22px}.erp-filters,.toolbar,.toolbar-left,.toolbar-right{width:100%}.toolbar .button,.toolbar .erp-filter,.toolbar .menu-selector,.toolbar .search-input,.toolbar .searchable-select,.toolbar .select-input{flex:1 1 100%;width:100%}.menu-selector__list{left:0;right:0;min-width:0;max-width:none}.modal{max-height:calc(100vh - 20px);padding:16px}.modal--medium,.modal--wide{width:min(100vw - 10px,100%)}.modal-footer{bottom:-16px}.contract-role-card{padding:14px}}