:root{--brand-primary:#2563eb;--brand-primary-dark:#1d4ed8;--brand-primary-bg:#eff6ff;--surface-base:#fff;--surface-sub:#f4f4f5;--surface-sunken:#ededea;--surface-hover:#f0f0ee;--text-primary:#18181b;--text-secondary:#3f3f46;--text-tertiary:#667085;--text-disabled:#a1a1aa;--border-default:#e4e4e7;--border-strong:#c8c8cd;--layer-frame:var(--surface-sunken);--layer-canvas:var(--surface-sub);--layer-face:var(--surface-base);--layer-line:var(--border-default);--fs-display:21.9px;--fs-h2:16.1px;--fs-h3:16.1px;--fs-body:13.8px;--fs-meta:13.8px;--fs-caption:13.8px;--fs-tiny:12.7px;--shell-rail-width:56px;--shell-rail-width-labeled:72px;--shell-subnav-width:256px;--shell-header-height:52px;--r-sm:8px;--r-full:9999px;--dur-fast:.12s;--area-brand:var(--brand-primary);--area-brand-bg:var(--brand-primary-bg);--area-hr:#0891b2;--area-hr-bg:#ecfeff;--area-advisory:#7c3aed;--area-advisory-bg:#f5f3ff;--area-sales-contract:#0d9488;--area-sales-contract-bg:#f0fdfa;--area-performance:#059669;--area-performance-bg:#f0fdf4;--area-valuechain:#0e7490;--area-valuechain-bg:#e6f7f8;--area-perf-mgmt:#4f46e5;--area-perf-mgmt-bg:#eef2ff;--area-report:#7c3aed;--area-report-bg:#f5f3ff;--area-approval:#2563eb;--area-approval-bg:#eff6ff;--area-ai:#ea580c;--area-ai-bg:#fff7ed;--area-system:#64748b;--area-system-bg:#f8fafc;--area-accounting:#1d4ed8;--area-accounting-bg:#eff6ff;--area-calendar:#3182ce;--area-calendar-bg:#eff6ff;--area-settings:#2563eb;--area-settings-bg:#eff6ff;--area-sysadmin:#475569;--area-sysadmin-bg:#f1f5f9;--area-help:#0ea5e9;--area-help-bg:#e0f2fe;--progress-waiting-bg:#f1f5f9;--progress-waiting-fg:#94a3b8;--progress-doing-bg:#dbeafe;--progress-doing-fg:#2563eb;--progress-review-bg:#f0fdfa;--progress-review-fg:#0d9488;--progress-approval-bg:#fffbeb;--progress-approval-fg:#b45309;--progress-hold-bg:#fef9c3;--progress-hold-fg:#a16207;--progress-done-bg:#f0fdf4;--progress-done-fg:#047857;--lifecycle-register-bg:#eef2ff;--lifecycle-register-fg:#6366f1;--lifecycle-assign-bg:#ecfeff;--lifecycle-assign-fg:#0891b2;--lifecycle-transfer-bg:#f5f3ff;--lifecycle-transfer-fg:#7c3aed;--lifecycle-bounce-bg:#fef2f2;--lifecycle-bounce-fg:#be123c;--lifecycle-closed-bg:#f1f5f9;--lifecycle-closed-fg:#475569;--i-high-bg:#fee2e2;--i-high-fg:#991b1b;--i-mid-bg:#fef3c7;--i-mid-fg:#92400e;--i-low-bg:#f3f4f6;--i-low-fg:#6b7280;--p1-bg:#fee2e2;--p1-fg:#991b1b;--p2-bg:#fef3c7;--p2-fg:#92400e;--p3-bg:#dbeafe;--p3-fg:#1e40af;--p4-bg:#f3f4f6;--p4-fg:#6b7280;--imp-high-fg:#b91c1c;--imp-high-border:#fecaca;--imp-high-dot:#f43f5e;--imp-mid-fg:#b45309;--imp-mid-border:#fcd34d;--imp-mid-dot:#f59e0b;--imp-low-fg:#4b5563;--imp-low-border:#d1d5db;--imp-low-dot:#9ca3af;--due-soon-bg:#fef3c7;--due-soon-fg:#92400e;--due-today-bg:#fee2e2;--due-today-fg:#991b1b;--due-overdue-bg:#f43f5e;--due-overdue-fg:#fff;--kpi-good:#047857;--kpi-warn:#b45309;--kpi-alert:#be123c;--kpi-info:#2563eb}html,body{height:100%;font-family:Pretendard,-apple-system,Apple SD Gothic Neo,Noto Sans KR,sans-serif;font-size:var(--fs-body);letter-spacing:-.005em;color:var(--text-primary);background:var(--layer-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.55}.ex-shell{height:100vh;display:flex;overflow:hidden}.ex-shell__main{background:var(--layer-canvas);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.ex-shell__body{flex-direction:column;flex:1;display:flex;overflow-y:auto}.ex-rail{width:var(--shell-rail-width-labeled);background:var(--layer-frame);border-right:1px solid var(--layer-line);flex-direction:column;flex-shrink:0;align-items:center;gap:1px;padding:8px 0;display:flex;overflow-y:auto}.ex-rail>.ex-state{text-align:center;flex:none;gap:6px;padding:10px 4px}.ex-rail>.ex-state>.ex-state__title{color:var(--text-tertiary);font-size:var(--fs-tiny);font-weight:400}.ex-rail__item{box-sizing:border-box;border-radius:var(--r-sm);width:68px;min-height:44px;color:var(--text-tertiary);transition:background var(--dur-fast), color var(--dur-fast);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;padding:4px 1px 3px;text-decoration:none;display:flex}.ex-rail__item>svg{flex:none}.ex-rail__item>span{max-width:100%;font-size:var(--fs-tiny);text-align:center;letter-spacing:-.2px;word-break:keep-all;overflow-wrap:anywhere;white-space:normal;font-weight:600;line-height:1.15}.ex-rail__item:hover{background:var(--surface-base);color:var(--text-primary)}.ex-rail__item.is-active{background:var(--brand-primary-bg);color:var(--brand-primary)}.ex-rail__divider{background:var(--border-default);flex-shrink:0;align-self:stretch;height:1px;margin:4px 6px}.ex-subnav{width:var(--shell-subnav-width);background:var(--surface-base);border-right:1px solid var(--layer-line);flex-direction:column;flex-shrink:0;gap:2px;padding-bottom:8px;display:flex;overflow-y:auto}.ex-subnav__title{height:var(--shell-header-height);border-bottom:1px solid var(--border-default);color:var(--brand-primary);font-size:var(--fs-h3);flex-shrink:0;align-items:center;gap:8px;margin-bottom:6px;padding:0 14px;font-weight:700;display:flex}.ex-subnav__action{border-radius:var(--r-sm);background:var(--brand-primary);color:#fff;height:32px;font:inherit;font-size:var(--fs-meta);white-space:nowrap;cursor:pointer;transition:filter var(--dur-fast);border:0;flex-shrink:0;justify-content:center;align-items:center;gap:5px;margin:2px 10px 6px;padding:0 12px;font-weight:500;display:flex}.ex-subnav__action:hover{filter:brightness(.92)}.ex-subnav__items{flex-direction:column;flex-shrink:0;gap:6px;padding:4px 12px 6px;display:flex}.ex-subnav__item{border-radius:var(--r-sm);height:36px;color:var(--text-secondary);font-size:var(--fs-meta);transition:background var(--dur-fast), color var(--dur-fast);align-items:center;margin:0 8px;padding:0 12px;text-decoration:none;display:flex;position:relative}.ex-subnav__item:hover{background:var(--surface-sunken);color:var(--text-primary)}.ex-subnav__item.is-active{background:var(--brand-primary-bg);color:var(--brand-primary);font-weight:700}.ex-subnav__item[data-depth="3"],.ex-subnav__group[data-depth="3"]{padding-left:24px}.ex-subnav__item[data-depth]:not([data-depth="1"]):not([data-depth="2"]):not([data-depth="3"]),.ex-subnav__group[data-depth]:not([data-depth="1"]):not([data-depth="2"]):not([data-depth="3"]){padding-left:48px}.ex-subnav__group{color:var(--text-tertiary);font-size:var(--fs-tiny);letter-spacing:.08em;flex-shrink:0;margin:0 8px;padding:14px 12px 6px;font-weight:800}.ex-subnav__item.is-active:before{content:"";background:var(--brand-primary);border-radius:0 2px 2px 0;width:3px;position:absolute;top:4px;bottom:4px;left:0}.ex-header{height:var(--shell-header-height);background:var(--surface-base);border-bottom:1px solid var(--border-default);flex-shrink:0;align-items:center;gap:8px;padding:0 18px;display:flex}.ex-header__title{font-size:var(--fs-h2);letter-spacing:-.015em;flex:1;font-weight:700}.ex-header>svg{color:var(--text-disabled);flex-shrink:0}.ex-header__items{align-items:center;gap:4px;display:flex}.ex-target-items{flex-direction:column;gap:6px;min-width:0;display:flex}.ex-target-items__item{min-width:0}.ex-header__account{position:relative}.ex-header__account>button{border-radius:var(--r-sm);height:36px;color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 6px;display:inline-flex}.ex-header__account>button:hover{background:var(--surface-sub)}.ex-header__avatar{background:var(--surface-sunken);width:28px;height:28px;color:var(--text-tertiary);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.ex-header__account>div{z-index:30;background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--r-sm);min-width:180px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 16px #18181b1f}.ex-header__menu{flex-direction:column;display:flex}.ex-header__menu>button{border-radius:var(--r-sm);height:34px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0 10px}.ex-header__menu>button:hover:not(:disabled){background:var(--surface-sub)}.ex-header__menu>button:disabled{color:var(--text-tertiary);cursor:default}.ex-header__menu>button[role=menuitemcheckbox]{align-items:center;gap:8px;display:flex}.ex-header__menu>button[role=menuitemcheckbox]>span{color:var(--text-tertiary);font-size:var(--fs-tiny);margin-left:auto;font-weight:700}.ex-header__menu>button.is-on,.ex-header__menu>button.is-on>span{color:var(--kpi-warn);font-weight:700}.ex-header__menu+[role=alert]{color:var(--kpi-alert);font-size:var(--fs-tiny);margin:0;padding:4px 10px}.ex-header__menu>[role=group]{border-top:1px solid var(--border-default);flex-wrap:wrap;gap:4px;padding:8px 10px;display:flex}.ex-header__menu>[role=group]>span{color:var(--text-tertiary);font-size:var(--fs-tiny);flex-basis:100%;font-weight:700}.ex-header__menu>[role=group]>div{border-radius:var(--r-sm);background:var(--surface-sub);flex-basis:100%;gap:3px;padding:3px;display:flex}.ex-header__menu>[role=group]>div>button{height:30px;color:var(--text-tertiary);font:inherit;font-size:var(--fs-tiny);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;font-weight:500}.ex-header__menu>[role=group]>div>button[aria-checked=true]{background:var(--surface-base);color:var(--text-primary);font-weight:700;box-shadow:0 1px 3px #0000001a}.ex-header__meta{color:var(--text-tertiary);font-size:var(--fs-caption)}.ex-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.ex-state>svg{color:var(--text-disabled)}.ex-state__title{color:var(--text-primary);font-size:15px;font-weight:700}.ex-state__hint{max-width:400px;color:var(--text-tertiary);font-size:12.5px;line-height:1.6}.ex-state__action{box-sizing:border-box;border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-base);height:26px;color:var(--text-primary);font:inherit;font-size:var(--fs-caption);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast);justify-content:center;align-items:center;gap:6px;padding:0 10px;font-weight:500;text-decoration:none;display:inline-flex}.ex-state__action:hover{background:var(--surface-sub)}.ex-home{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.ex-home__head{color:var(--text-tertiary);font-size:var(--fs-meta);word-break:keep-all;flex-direction:column;gap:4px;display:flex}.ex-home__greeting{color:var(--text-primary);letter-spacing:-.01em;font-size:20px;font-weight:800}.ex-home__grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.ex-home__widget{background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--r-sm);flex-direction:column;min-height:160px;display:flex}.ex-home__widget--wide{grid-column:span 2}.ex-confirm{z-index:60;background:#0f172a70;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.ex-confirm>[role=dialog]{background:var(--surface-base);border-radius:14px;width:min(420px,100%);overflow:hidden;box-shadow:0 24px 60px -12px #0f172a66}.ex-confirm__title{color:var(--text-primary);font-size:var(--fs-h3);padding:18px 22px 0;font-weight:800}.ex-confirm__body{color:var(--text-secondary);font-size:var(--fs-caption);white-space:pre-line;overflow-wrap:anywhere;padding:10px 22px 4px;line-height:1.6}.ex-confirm__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:18px 22px 20px;display:flex}.ex-confirm__actions>button{border:1px solid var(--border-default);background:var(--surface-base);color:var(--text-secondary);font:inherit;font-size:var(--fs-caption);white-space:nowrap;cursor:pointer;border-radius:9px;padding:9px 18px;font-weight:700}.ex-confirm__actions>button:last-child{background:var(--brand-primary);color:var(--surface-base);border-color:#0000;font-weight:800}.ex-confirm__actions>button:disabled{opacity:.5;cursor:not-allowed}.ex-login{background:var(--layer-canvas);justify-content:center;align-items:center;min-height:100vh;display:flex}.ex-login__form{background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--r-sm);flex-direction:column;gap:10px;width:340px;padding:28px;display:flex}.ex-login__form label{color:var(--text-secondary);font-size:var(--fs-tiny);flex-direction:column;gap:6px;font-weight:700;display:flex}.ex-login__form button[type=button]{border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-base);height:40px;color:var(--text-primary);font:inherit;cursor:pointer}.ex-login__form input{border:1px solid var(--border-default);border-radius:var(--r-sm);height:38px;color:var(--text-primary);font:inherit;font-size:var(--fs-body);padding:0 12px;font-weight:400}.ex-login__form button[type=submit]{border-radius:var(--r-sm);background:var(--brand-primary);color:#fff;height:40px;font:inherit;cursor:pointer;border:0;font-weight:700}.ex-login__form [role=alert]{color:#b42c2c;font-size:var(--fs-caption)}.ex-login__title{font-size:var(--fs-h2);letter-spacing:-.025em;font-weight:800}.ex-login__form p{color:var(--text-tertiary);font-size:var(--fs-caption);margin:0;line-height:1.6}.ex-login__extra{color:var(--text-disabled);font-size:var(--fs-tiny);flex-wrap:wrap;gap:4px 10px;display:flex}.ex-file-upload{z-index:70;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.ex-file-upload__card{border:1px solid var(--border-default);background:var(--surface-base);width:100%;max-width:420px;color:var(--text-primary);border-radius:12px;flex-direction:column;gap:8px;padding:18px 18px 14px;display:flex;box-shadow:0 12px 40px #00000047}.ex-file-upload__title{font-size:var(--fs-body);font-weight:700}.ex-file-upload__hint{color:var(--text-secondary);font-size:var(--fs-tiny);margin-bottom:4px;line-height:1.5}.ex-file-upload__row,.ex-file-upload__foot{align-items:center;gap:8px;display:flex}.ex-file-upload__name{min-width:0;font-size:var(--fs-caption);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.ex-file-upload__percent,.ex-file-upload__count{color:var(--text-secondary);font-size:var(--fs-caption);font-variant-numeric:tabular-nums}.ex-file-upload__count,.ex-file-upload__foot>:first-child{flex:1}.ex-file-upload__bar{background:var(--surface-sunken);border-radius:999px;height:6px;overflow:hidden}.ex-file-upload__fill{background:var(--brand-primary);height:100%;transition:width .12s linear}.ex-file-upload__foot>button{border:1px solid var(--border-default);background:var(--surface-base);color:var(--text-primary);font:inherit;font-size:var(--fs-caption);cursor:pointer;border-radius:6px;padding:4px 12px}.ex-file-upload__fails{flex-direction:column;gap:6px;display:flex}.ex-file-upload__fail{color:var(--kpi-alert);font-size:var(--fs-caption);overflow-wrap:anywhere}.ex-file-attach{border:1px dashed var(--border-default);border-radius:var(--r-sm);flex-direction:column;gap:6px;padding:8px;display:flex}.ex-file-attach.is-over{outline:2px dashed var(--brand-primary);outline-offset:-2px}.ex-file-attach.is-disabled{opacity:.6}.ex-file-attach__drop{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ex-file-attach__pick{border:1px solid var(--border-default);background:var(--surface-base);color:var(--text-primary);font:inherit;font-size:var(--fs-caption);cursor:pointer;border-radius:6px;padding:4px 12px}.ex-file-attach__pick:disabled{cursor:default}.ex-file-attach__denied{color:var(--kpi-alert);font-size:var(--fs-caption)}.ex-file-attach__hint{color:var(--text-tertiary);font-size:var(--fs-tiny)}.ex-file-list{flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ex-file-list__chip{border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-sub);max-width:200px;font-size:var(--fs-tiny);align-items:center;gap:4px;padding:4px 8px;display:flex}.ex-file-list__chip--image{background:0 0;border:none;max-width:none;padding:0;display:block;position:relative}.ex-file-list__chip--image>a{display:block}.ex-file-list__thumb{border:1px solid var(--border-default);border-radius:var(--r-sm);object-fit:cover;width:64px;height:64px;display:block}.ex-file-list__icon{color:var(--text-tertiary);flex-shrink:0}.ex-file-list__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}a.ex-file-list__name{color:var(--text-secondary)}.ex-file-list__size{color:var(--text-tertiary);flex-shrink:0}.ex-file-list__remove{color:var(--text-tertiary);font:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;display:flex}.ex-file-list__chip--image .ex-file-list__remove{border:1px solid var(--border-default);background:var(--surface-base);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;line-height:1;position:absolute;top:-6px;right:-6px}.ex-shell[data-device=mobile] .ex-header{align-items:flex-end;gap:11px;height:auto;padding:15px 16px 11px}.ex-shell[data-device=mobile] .ex-header__title{letter-spacing:-.03em;font-size:18.5px;font-weight:800;line-height:1.15}.ex-shell[data-device=mobile] .ex-header__account>button>span:last-child{display:none}.ex-tabbar{background:var(--surface-base);border-top:1px solid var(--border-default);padding-bottom:env(safe-area-inset-bottom,0px);flex-shrink:0;display:flex}.ex-tabbar__item{min-height:54px;color:var(--text-tertiary);font:inherit;letter-spacing:-.01em;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11.5px;font-weight:500;text-decoration:none;display:flex}.ex-tabbar__item>span:first-child{border-radius:13px;justify-content:center;align-items:center;width:44px;height:26px;transition:background .15s;display:flex}.ex-tabbar__item.is-active{color:var(--brand-primary);font-weight:700}.ex-tabbar__item.is-active>span:first-child{background:color-mix(in srgb, var(--brand-primary) 11%, transparent)}.ex-tabbar>.ex-state{flex-direction:row;gap:8px;padding:8px 12px}.ex-tabbar>.ex-state>.ex-state__title{color:var(--text-tertiary);font-size:12px;font-weight:400}.ex-shell[data-device=mobile] .ex-home{padding:15px}.ex-more{background:var(--layer-canvas);flex-direction:column;padding:8px;display:flex}.ex-more__item[data-depth="3"]{padding-left:38px}.ex-more__item[data-depth]:not([data-depth="1"]):not([data-depth="2"]):not([data-depth="3"]){padding-left:62px}.ex-more .ex-subnav__group{margin:0;padding-left:14px}.ex-more .ex-subnav__group[data-depth="3"]{padding-left:38px}.ex-more .ex-subnav__group[data-depth]:not([data-depth="1"]):not([data-depth="2"]):not([data-depth="3"]){padding-left:62px}.ex-more__item{border:0;border-bottom:1px solid var(--border-default);background:var(--surface-base);height:44px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;align-items:center;padding:0 14px;text-decoration:none;display:flex}.ex-badge{border-radius:var(--r-sm);background:var(--surface-sub);height:22px;color:var(--text-secondary);font-size:var(--fs-tiny);white-space:nowrap;letter-spacing:-.01em;align-items:center;gap:3px;padding:0 7px;font-weight:700;display:inline-flex}.ex-field{flex-direction:column;gap:6px;min-width:0;display:flex}.ex-field__label{color:var(--text-secondary);font-size:var(--fs-caption);align-items:center;gap:4px;font-weight:700;display:flex}.ex-field__required{color:var(--kpi-alert);font-size:var(--fs-tiny);font-weight:700}.ex-field__error{color:var(--kpi-alert);font-size:var(--fs-tiny)}.ex-feature-map{grid-template-rows:auto minmax(0,1fr);grid-template-columns:232px minmax(0,1fr);column-gap:16px;height:100%;min-height:0;line-height:1.5;display:grid}.ex-feature-map>header{flex-wrap:wrap;grid-column:1/-1;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.ex-feature-map h1{font-size:var(--fs-h2);margin:0;font-weight:800}.ex-feature-map>main{min-width:0;overflow:auto}.ex-feature-map h2{border-left:3px solid var(--brand-primary);font-size:var(--fs-body);margin:22px 0 8px;padding-left:8px;font-weight:800}.ex-feature-map h4{color:var(--text-tertiary);font-size:var(--fs-tiny);margin:8px 0 0;font-weight:700}.ex-feature-map ul,.ex-feature-map ol{font-size:var(--fs-caption);margin:4px 0 0;padding-left:18px}.ex-feature-map button[data-target]{color:var(--brand-primary);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.ex-feature-map button[data-target]:hover{text-decoration:underline}.ex-feature-map__meta{color:var(--text-tertiary);font-size:var(--fs-caption)}p.ex-feature-map__meta{flex-wrap:wrap;gap:12px;margin:8px 0 0;display:flex}.ex-feature-map__tree{border-right:1px solid var(--border-default);padding:4px 8px 12px 0;overflow:auto}.ex-feature-map__tree button{border-radius:var(--r-sm);width:100%;color:var(--text-secondary);font-size:var(--fs-meta);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:5px 8px;display:flex}.ex-feature-map__tree button[data-menu]{font-size:var(--fs-caption);padding-left:24px}.ex-feature-map__tree button:hover{background:var(--surface-hover)}.ex-feature-map__tree button[aria-pressed=true]{background:var(--brand-primary);color:var(--surface-base);font-weight:700}.ex-feature-map__tree button>span{width:10px;color:var(--text-disabled);transition:transform var(--dur-fast);flex-shrink:0;font-size:9px;display:inline-block}.ex-feature-map__tree button[aria-expanded=true]>span{transform:rotate(90deg)}.ex-feature-map__tree small{color:var(--text-disabled);font-size:var(--fs-tiny);font-variant-numeric:tabular-nums;margin-left:auto}.ex-feature-map__tree button[aria-pressed=true] small{color:inherit}.ex-feature-map__tabs{z-index:5;border-bottom:1px solid var(--border-default);background:var(--surface-base);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 0;display:flex;position:sticky;top:0}.ex-feature-map__tabs>div,.ex-feature-map__tabs>span{gap:4px;display:flex}.ex-feature-map__tabs>span{margin-left:auto}.ex-feature-map__tabs button{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface-base);color:var(--text-secondary);font-size:var(--fs-meta);cursor:pointer;padding:6px 12px;font-weight:600}.ex-feature-map__tabs>span button{font-size:var(--fs-caption);padding:4px 10px;font-weight:400}.ex-feature-map__tabs button[aria-pressed=true]{border-color:var(--brand-primary);background:var(--brand-primary);color:var(--surface-base)}.ex-feature-map__tabs input{border:1px solid var(--border-strong);border-radius:var(--r-sm);min-width:160px;font-size:var(--fs-meta);flex:1;padding:7px 11px}.ex-feature-map main>table{border-collapse:collapse;width:100%;margin-top:12px}.ex-feature-map main>table th,.ex-feature-map main>table td{border:1px solid var(--border-default);font-size:var(--fs-caption);text-align:left;padding:6px 8px}.ex-feature-map main>table th{background:var(--surface-sub)}.ex-feature-map__card{border:1px solid var(--border-default);background:var(--surface-base);border-radius:10px;margin:10px 0;padding:12px 14px;transition:background-color 1.5s}.ex-feature-map__card[data-warn]{border-color:var(--kpi-warn)}.ex-feature-map__card[data-flash]{background:var(--due-soon-bg);transition:none}.ex-feature-map__card>button{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:8px;padding:0;display:flex}.ex-feature-map__card>button>span:first-child{color:var(--text-disabled);transition:transform var(--dur-fast);flex-shrink:0;font-size:10px;display:inline-block}.ex-feature-map__card>button[aria-expanded=true]>span:first-child{transform:rotate(90deg)}.ex-feature-map__card code{color:var(--text-tertiary);font-size:var(--fs-tiny)}.ex-feature-map__card b{font-size:var(--fs-body)}.ex-feature-map__card p b,.ex-feature-map__card li b{font-size:inherit}.ex-feature-map__card>div{margin-top:8px}.ex-feature-map__card>div>p{font-size:var(--fs-meta);margin:4px 0}.ex-feature-map .ex-badge[data-tone=area]{background:var(--area-sysadmin-bg);color:var(--area-sysadmin)}.ex-feature-map .ex-badge[data-tone=ok],.ex-feature-map .ex-badge[data-tone=cov]{background:var(--progress-done-bg);color:var(--progress-done-fg)}.ex-feature-map .ex-badge[data-tone=part],.ex-feature-map .ex-badge[data-tone=pri-보통]{background:var(--i-mid-bg);color:var(--i-mid-fg)}.ex-feature-map .ex-badge[data-tone=plan]{background:var(--progress-waiting-bg);color:var(--progress-waiting-fg)}.ex-feature-map .ex-badge[data-tone=dep]{color:var(--text-disabled);text-decoration:line-through}.ex-feature-map .ex-badge[data-tone=nocov],.ex-feature-map .ex-badge[data-tone=pri-높음]{background:var(--i-high-bg);color:var(--i-high-fg)}.ex-feature-map .ex-badge[data-tone=pri-낮음]{background:var(--i-low-bg);color:var(--i-low-fg)}.ex-feature-map__bar{background:var(--border-default);border-radius:3px;width:70px;height:6px;display:inline-block;overflow:hidden}.ex-feature-map__bar>span{background:var(--kpi-alert);height:100%;display:block}.ex-feature-map__bar[data-tone=ok]>span{background:var(--kpi-good)}.ex-feature-map__bar[data-tone=part]>span{background:var(--kpi-warn)}.ex-my-page{flex-direction:column;gap:12px;padding:20px 24px;display:flex}.ex-my-page h1{font-size:var(--fs-h2);margin:0;font-weight:800}.ex-my-page .ex-db-table-specs__tabs button{cursor:pointer;font-family:inherit}.ex-my-page__choices{flex-direction:column;gap:4px;display:flex}.ex-my-page__choice{min-height:32px;color:var(--text-primary);font-size:var(--fs-body);cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ex-my-page__choice>input{accent-color:var(--brand-primary);flex-shrink:0;margin:0}.ex-my-page__choice>span:first-of-type{overflow-wrap:anywhere;min-width:0}.ex-shell[data-device=mobile] .ex-my-page{padding:15px}.ex-shell[data-device=mobile] .ex-my-page__choice{min-height:44px}.ex-db-table-specs{grid-template-rows:auto minmax(0,1fr);grid-template-columns:320px minmax(0,1fr);gap:16px;max-width:1600px;height:100%;min-height:0;margin:0 auto;line-height:1.5;display:grid}.ex-db-table-specs>header{grid-column:1/-1;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ex-db-table-specs h1{font-size:var(--fs-h2);margin:0;font-weight:800}.ex-db-table-specs h1+p{color:var(--text-tertiary);font-size:var(--fs-caption);margin:2px 0 0}.ex-db-table-specs button{font:inherit;cursor:pointer}.ex-db-table-specs>header>button,.ex-db-table-specs__side form button,.ex-db-table-specs [data-more] button{border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-base);color:var(--text-primary);font-size:var(--fs-caption);padding:5px 12px}.ex-db-table-specs>main{flex-direction:column;gap:14px;min-width:0;display:flex;overflow:auto}.ex-db-table-specs code{font-family:ui-monospace,Consolas,monospace}.ex-db-table-specs__side{border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-base);align-self:start;min-width:0;max-height:100%;padding:10px;position:sticky;top:10px;overflow:auto}.ex-db-table-specs__side form{gap:6px;margin-bottom:8px;display:flex}.ex-db-table-specs__side input{border:1.5px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-base);min-width:0;color:var(--text-primary);font:inherit;font-size:var(--fs-caption);flex:1;padding:8px 10px}.ex-db-table-specs__side input[aria-invalid=true]{border-color:var(--kpi-alert)}.ex-db-table-specs__chips{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.ex-db-table-specs__chips button{border:1px solid var(--border-default);border-radius:var(--r-full);background:var(--surface-base);color:var(--text-primary);font-size:var(--fs-caption);white-space:nowrap;align-items:center;gap:6px;padding:3px 11px;display:inline-flex}.ex-db-table-specs__chips button[aria-pressed=true]{border-color:var(--brand-primary);background:var(--brand-primary-bg);color:var(--brand-primary);font-weight:700}.ex-db-table-specs__chips [data-count]{border-radius:var(--r-full);background:var(--surface-sunken);color:var(--text-secondary);font-size:var(--fs-tiny);font-variant-numeric:tabular-nums;padding:0 6px;font-weight:700}.ex-db-table-specs__item{border-radius:var(--r-sm);width:100%;color:inherit;text-align:left;background:0 0;border:0;margin-bottom:2px;padding:8px 10px;display:block}.ex-db-table-specs__item[aria-pressed=true]{background:var(--brand-primary-bg)}.ex-db-table-specs__item b,.ex-db-table-specs__item span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ex-db-table-specs__item b{color:var(--text-primary);font-family:ui-monospace,Consolas,monospace;font-size:var(--fs-caption);font-weight:600}.ex-db-table-specs__item[aria-pressed=true] b{color:var(--brand-primary)}.ex-db-table-specs__item span{color:var(--text-tertiary);font-size:var(--fs-tiny)}.ex-db-table-specs [data-more]{text-align:center;margin-top:6px}.ex-db-table-specs [data-more] [role=alert]{color:var(--kpi-alert);font-size:var(--fs-tiny);margin-top:4px}.ex-db-table-specs__empty{color:var(--text-tertiary);font-size:var(--fs-caption);margin:8px}.ex-db-table-specs [data-shown]{font-size:var(--fs-tiny);margin:8px 4px 0}.ex-db-table-specs>main>section{border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-base);min-width:0;padding:16px 20px}.ex-db-table-specs__head{color:var(--text-secondary);font-size:var(--fs-caption)}.ex-db-table-specs>main>.ex-db-table-specs__head:not([data-note]){padding-bottom:0}.ex-db-table-specs__head h2{overflow-wrap:anywhere;color:var(--text-primary);font-family:ui-monospace,Consolas,monospace;font-size:var(--fs-h2);margin:0 0 4px}.ex-db-table-specs__head b{color:var(--text-primary)}.ex-db-table-specs__head [data-purpose]{overflow-wrap:anywhere;white-space:pre-wrap;margin:2px 0 10px}.ex-db-table-specs__head .ex-db-table-specs__empty{margin:0}.ex-db-table-specs__stat{color:var(--text-tertiary);flex-wrap:wrap;gap:18px;margin-bottom:10px;display:flex}.ex-db-table-specs__stat b{font-variant-numeric:tabular-nums}.ex-db-table-specs__tabs{gap:2px;display:flex}.ex-db-table-specs__tabs button{color:var(--text-secondary);font-size:var(--fs-caption);background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 14px}.ex-db-table-specs__tabs button[aria-selected=true]{border-bottom-color:var(--brand-primary);color:var(--brand-primary);font-weight:700}.ex-db-table-specs__table{overflow-x:auto}.ex-db-table-specs__table table{border-collapse:collapse;background:var(--surface-base);width:100%}.ex-db-table-specs__table th{border-bottom:1px solid var(--border-default);background:var(--surface-sub);color:var(--text-tertiary);font-size:var(--fs-tiny);text-align:left;white-space:nowrap;padding:8px 10px;font-weight:700;position:sticky;top:0}.ex-db-table-specs__table td{border-bottom:1px solid var(--border-default);font-size:var(--fs-caption);vertical-align:top;padding:7px 10px}.ex-db-table-specs__table td:first-child{width:34px;color:var(--text-tertiary);text-align:right}.ex-db-table-specs__table td code{color:var(--text-secondary);overflow-wrap:anywhere}.ex-db-table-specs__table [data-column] td:nth-child(2) code{color:var(--text-primary);white-space:nowrap}.ex-db-table-specs__table [data-column] td:nth-child(6){text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.ex-db-table-specs__table [data-column] td:last-child{overflow-wrap:anywhere;white-space:pre-wrap;min-width:220px}.ex-db-table-specs__table .ex-db-table-specs__empty{margin:0}.ex-db-table-specs__tag{font-size:var(--fs-tiny);white-space:nowrap;border:1px solid #0000;border-radius:4px;margin:0 4px 2px 0;padding:0 6px;line-height:1.6;display:inline-block}.ex-db-table-specs__tag[data-source=ai]{border-radius:var(--r-full);background:var(--progress-approval-bg);color:var(--progress-approval-fg);margin-right:6px;padding:0 7px;font-weight:700}.ex-db-table-specs__tag[data-key=pk]{background:var(--brand-primary-bg);color:var(--brand-primary);font-weight:700}.ex-db-table-specs__tag[data-key=fk]{background:var(--progress-doing-bg);color:var(--progress-doing-fg)}.ex-db-table-specs__tag[data-key=guess]{border:1px dashed var(--text-tertiary);color:var(--text-tertiary);background:0 0}.ex-db-table-specs__tag[data-key=uk]{background:var(--progress-done-bg);color:var(--progress-done-fg)}.ex-db-table-specs__tag[data-key=secret]{border-color:var(--border-default);color:var(--kpi-alert)}.ex-db-table-specs__erd [data-legend]{color:var(--text-tertiary);font-size:var(--fs-caption);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:8px;display:flex}.ex-db-table-specs__erd [data-legend] svg{vertical-align:middle;margin-right:5px}.ex-db-table-specs__erd [data-scroll]{overflow-x:auto}.ex-db-table-specs__erd svg[role=img]{border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-base);display:block}.ex-db-table-specs__erd [data-edge]{fill:none}.ex-db-table-specs__erd [data-edge=fk]{stroke:var(--brand-primary);stroke-width:1.5px}.ex-db-table-specs__erd line[data-edge]{stroke-width:2px}.ex-db-table-specs__erd [data-edge=guess]{stroke:var(--text-tertiary);stroke-width:1.2px;stroke-dasharray:5 4}.ex-db-table-specs__erd g[data-box]{cursor:pointer}.ex-db-table-specs__erd g[data-center]{cursor:default}.ex-db-table-specs__erd g[data-box]>rect{fill:var(--surface-base);stroke:var(--text-tertiary);stroke-width:1px}.ex-db-table-specs__erd g[data-guess]>rect{stroke-dasharray:5 4}.ex-db-table-specs__erd g[data-center]>rect{stroke:var(--brand-primary);stroke-width:2px}.ex-db-table-specs__erd g[data-box]>path{fill:var(--surface-sub)}.ex-db-table-specs__erd g[data-center]>path{fill:var(--brand-primary-bg)}.ex-db-table-specs__erd text{fill:var(--text-tertiary);font-size:var(--fs-tiny)}.ex-db-table-specs__erd text[data-part=name]{fill:var(--text-primary);font-family:ui-monospace,Consolas,monospace;font-size:var(--fs-caption);font-weight:700}.ex-db-table-specs__erd text[data-part=key]{fill:var(--text-primary);font-family:ui-monospace,Consolas,monospace}.ex-db-table-specs__erd tspan[data-source=ai]{fill:var(--progress-approval-fg);font-weight:700}.ex-db-table-specs__erd [data-rest]{margin:8px 0 0}.ex-db-table-specs__erd [data-rest] button{color:var(--brand-primary);background:0 0;border:0;margin-right:8px;padding:0;font-family:ui-monospace,Consolas,monospace}.ex-system-mode-banner{height:18px;color:var(--kpi-warn);font-size:var(--fs-tiny);letter-spacing:.06em;background:0 0;flex-shrink:0;justify-content:center;align-items:center;gap:8px;font-weight:900;display:flex}.ex-system-mode-banner>span{text-shadow:0 0 3px #fff,0 0 3px #fff,0 1px 2px #ffffffe6;animation:1.8s ease-in-out infinite ex-system-mode-banner-pulse}.ex-system-mode-banner__off{border:1px solid var(--kpi-warn);color:var(--kpi-warn);font:inherit;cursor:pointer;background:#ffffffd9;border-radius:999px;padding:0 8px;line-height:16px}.ex-system-mode-banner__off:disabled{cursor:default}@keyframes ex-system-mode-banner-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.ex-system-mode-banner>span{animation:none}}.ex-table{overflow:auto}.ex-table>table{border-collapse:separate;border-spacing:0 7px;table-layout:fixed;width:100%;font-size:var(--fs-meta);padding:0 4px}.ex-table th{z-index:5;background:var(--surface-sub);height:38px;box-shadow:inset 0 -1px 0 var(--border-default);color:var(--text-tertiary);font-size:var(--fs-caption);text-align:left;white-space:nowrap;padding:0 8px;font-weight:700;position:sticky;top:0}.ex-table th:first-child{padding-left:16px}.ex-table td{background:var(--surface-base);border-top:1px solid var(--border-default);border-bottom:1px solid var(--border-default);color:var(--text-primary);vertical-align:middle;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;padding:0 10px;overflow:hidden}.ex-table td:first-child{border-left:1px solid var(--border-default);border-top-left-radius:10px;border-bottom-left-radius:10px;padding-left:16px}.ex-table td:last-child{border-right:1px solid var(--border-default);border-top-right-radius:10px;border-bottom-right-radius:10px}.ex-table tbody>tr{height:54px;transition:box-shadow var(--dur-fast)}.ex-table tbody>tr[tabindex]{cursor:pointer}.ex-table tbody>tr[tabindex]:hover{box-shadow:0 2px 10px #00000012}.ex-table tbody>tr[aria-selected=true]>td{background:var(--brand-primary-bg)}.ex-table tbody>tr[aria-selected=true]>td:first-child{box-shadow:inset 3px 0 0 var(--brand-primary)}.ex-table>div{height:1px}.ex-table>button{border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-base);color:var(--text-secondary);font:inherit;font-size:var(--fs-caption);cursor:pointer;margin:10px auto 18px;padding:6px 14px;font-weight:700;display:block}.ex-table>button:disabled{color:var(--text-disabled);cursor:default}.ex-dialog{z-index:50;background:#0f172a70;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.ex-dialog>[role=dialog]{background:var(--surface-base);border-radius:14px;flex-direction:column;width:min(720px,100%);max-height:100%;display:flex;overflow:hidden;box-shadow:0 24px 60px -12px #0f172a66}.ex-dialog__head{border-bottom:1px solid var(--border-default);align-items:center;gap:8px;padding:14px 20px;display:flex}.ex-dialog__title{color:var(--text-primary);font-size:var(--fs-h3);flex:1;font-weight:800}.ex-dialog__close{width:28px;height:28px;color:var(--text-tertiary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:18px;line-height:1}.ex-dialog__body{flex:1;min-height:0;padding:18px 20px;overflow:auto}.ex-dialog__foot{border-top:1px solid var(--border-default);background:var(--surface-sub);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 20px;display:flex}.ex-dialog__foot>button{border:1px solid var(--border-default);background:var(--surface-base);color:var(--text-secondary);font:inherit;font-size:var(--fs-caption);white-space:nowrap;cursor:pointer;border-radius:8px;padding:7px 14px;font-weight:700}.ex-dialog__foot>button:last-child{background:var(--brand-primary);color:var(--surface-base);border-color:#0000;font-weight:800}.ex-settings{grid-template-columns:minmax(0,1fr);height:100%;min-height:0;display:grid}.ex-settings:has(>.ex-settings__detail){grid-template-columns:minmax(0,1fr) 380px}.ex-settings>div:first-child{min-width:0;overflow:auto}.ex-settings h1{font-size:var(--fs-h);margin:0 0 4px}.ex-settings h1+p{color:var(--text-tertiary);margin:0 0 12px}.ex-settings td code,.ex-settings__detail>code{color:var(--text-tertiary);font-size:var(--fs-tiny);display:block}.ex-settings__filter{gap:8px;margin-bottom:10px;display:flex}.ex-settings__detail{border-left:1px solid var(--border-default);min-width:0;padding:12px 16px;overflow:auto}.ex-settings__detail>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.ex-settings__detail>header>h2{font-size:var(--fs-body);margin:0}.ex-settings__detail>div{flex-wrap:wrap;gap:4px;margin:8px 0;display:flex}.ex-settings__detail>h3{font-size:var(--fs-tiny);color:var(--text-tertiary);margin:12px 0 4px}.ex-settings__detail>p{white-space:pre-wrap;margin:0}.ex-dialog>.ex-setting-value{width:min(520px,100%)}.ex-setting-value input{box-sizing:border-box;width:100%}.ex-setting-value__hint{color:var(--text-tertiary);font-size:var(--fs-tiny);margin:4px 0 12px}.ex-setting-value__reason{font-family:inherit}.ex-settings__history{margin-top:16px;overflow-x:auto}.ex-settings__history>h3{font-size:var(--fs-tiny);color:var(--text-tertiary);margin:0 0 4px}.ex-settings__history .ex-table>table{table-layout:auto}.ex-settings__history .ex-table th,.ex-settings__history .ex-table th:first-child{padding:0 6px}.ex-settings__history .ex-table td,.ex-settings__history .ex-table td:first-child{text-overflow:clip;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;padding:6px;overflow:visible}.ex-proposals{grid-template-columns:minmax(0,1fr);height:100%;min-height:0;display:grid}.ex-proposals:has(>.ex-proposals__detail){grid-template-columns:minmax(0,1fr) 380px}.ex-proposals>div:first-child{min-width:0;overflow:auto}.ex-proposals h1{font-size:var(--fs-h);margin:0 0 4px}.ex-proposals h1+p{color:var(--text-tertiary);margin:0 0 12px}.ex-proposals td code{word-break:break-all}.ex-proposals__filter{gap:8px;margin-bottom:10px;display:flex}.ex-proposals__detail{border-left:1px solid var(--border-default);min-width:0;padding:12px 16px;overflow:auto}.ex-proposals__detail>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.ex-proposals__detail>h3{font-size:var(--fs-tiny);color:var(--text-tertiary);margin:12px 0 4px}.ex-proposals__detail>p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 4px}.ex-proposals__detail>div{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.ex-proposals__body{border:1px solid var(--border-default);max-height:320px;font-size:var(--fs-tiny);margin:0;padding:8px;overflow:auto}.ex-proposals__done,.ex-proposals__failed{font-size:var(--fs-caption);margin:12px 0 0}.ex-proposals__failed{color:var(--kpi-alert)}
