@font-face{font-family:Pretendard;font-weight:400;src:url(/assets/Pretendard-Regular-D5CgADJ9.woff) format("woff")}@font-face{font-family:Pretendard;font-weight:500;src:url(/assets/Pretendard-Medium-Cs2k_Pp2.woff) format("woff")}@font-face{font-family:Pretendard;font-weight:600;src:url(/assets/Pretendard-SemiBold-SXfe8JY8.woff) format("woff")}@font-face{font-family:Pretendard;font-weight:700;src:url(/assets/Pretendard-Bold-DD7wHHNl.woff) format("woff")}@font-face{font-family:Montserrat;font-weight:400;src:url(/assets/Montserrat-Regular-Bui6lNBE.woff) format("woff")}@font-face{font-family:Montserrat;font-weight:500;src:url(/assets/Montserrat-Medium-772kXwx-.woff) format("woff")}@font-face{font-family:Montserrat;font-weight:600;src:url(/assets/Montserrat-SemiBold-BrLOOCRd.woff) format("woff")}@font-face{font-family:Montserrat;font-weight:700;src:url(/assets/Montserrat-Bold-qdBz9LL9.woff) format("woff")}:root{--color-primary: #1480fc;--color-primary-400: #4ea7fd;--color-primary-500: #1480fc;--color-primary-600: #0e63d8;--color-primary-700: #0a49b5;--color-primary-a15: rgba(116, 160, 255, .15);--color-primary-border: rgba(112, 153, 242, .8);--color-primary-light: rgba(72, 128, 255, .1);--color-bg-main: #f5f6fa;--color-bg-card: #ffffff;--color-bg-sidebar: #ffffff;--color-bg-topbar: #ffffff;--color-border: #e0e0e0;--color-divider: rgba(0, 0, 0, .1);--color-shadow: rgba(0, 0, 0, .05);--color-base: #454f5b;--color-base-hover: #37404b;--color-success: #00cfb3;--color-info: #48cbef;--color-danger: #fd5454;--color-warning: #ff6f8b;--color-accent: #46c5fc;--color-accent-hover: #339bd8;--color-bg-light: #f0f3f7;--color-bg-subtle: #f4f6f7;--color-bg-neutral: #f2f2f2;--color-bg-header: #f0f4f7;--color-bg-white: #ffffff;--color-text-main: #232b33;--color-text-pri: #515a67;--color-text-sec: #5e6977;--color-text-gray: #9199a3;--color-text-muted: rgba(43, 48, 52, .5);--color-text-label: #606060;--color-text-dark: #383838;--color-text-disabled: #a7a7a7;--color-text-link: #4880ff;--color-border-sec: #c8cdd7;--color-border-light: #e2e2e2;--color-border-medium: #dad9dc;--color-border-hover: #9699a7;--color-border-th: #d2d4de;--color-success-solid: #00b69b;--color-success-solid-hover: #009e87;--color-success-soft-bg: rgba(0, 182, 155, .12);--color-success-soft-text: #007d6a;--color-danger-solid: #fd5454;--color-danger-solid-hover: #e03e3e;--color-danger-soft-bg: rgba(253, 84, 84, .12);--color-danger-soft-text: #c93232;--color-warning-solid: #fcbe2d;--color-warning-solid-hover: #e0a818;--color-warning-soft-bg: rgba(252, 190, 45, .12);--color-warning-soft-text: #a07010;--color-info-solid: #48cbef;--color-info-solid-hover: #2db0d8;--color-info-soft-bg: rgba(72, 203, 239, .12);--color-info-soft-text: #1a7a99;--color-neutral-solid: #64748b;--color-neutral-soft-bg: rgba(100, 116, 139, .1);--color-neutral-soft-text: #475569;--badge-success-bg: rgba(0, 182, 155, .12);--badge-success-color: #0dc1a5;--badge-success-border: rgba(0, 182, 155, .35);--badge-warning-bg: rgba(252, 190, 45, .13);--badge-warning-color: #ed9b1e;--badge-warning-border: rgba(252, 190, 45, .4);--badge-danger-bg: rgba(253, 84, 84, .11);--badge-danger-color: #e7416e;--badge-danger-border: rgba(253, 84, 84, .35);--badge-info-bg: rgba(72, 203, 239, .12);--badge-info-color: #3a99d2;--badge-info-border: rgba(72, 144, 239, .4);--badge-neutral-bg: rgba(100, 116, 139, .1);--badge-neutral-color: #475569;--badge-neutral-border: rgba(100, 116, 139, .3);--chart-color-1: #4880ff;--chart-color-2: #43e5cf;--chart-color-3: #fcbe2d;--chart-color-4: #ff6f8b;--chart-color-5: #48cbef;--chart-color-6: #a78bfa;--chart-grid: rgba(0, 0, 0, .05);--chart-legend-text: var(--color-text-sec);--radius-xs: 8px;--radius-sm: 10px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 9999px;--radius-card: 14px;--radius-btn: 8px;--shadow-card: 0px 4px 12px -1px rgba(0, 0, 0, .1);--shadow-overlay: 0px 4px 16px 0px rgba(0, 0, 0, .1);--shadow-focus: 0 0 0 3px rgba(110, 152, 250, .2);--sidebar-width: 240px;--topbar-height: 70px;--font-kor: "Pretendard", "Malgun Gothic", -apple-system, sans-serif;--font-display: "Montserrat", sans-serif;--cell-empty-bg: #ffffff;--cell-used-bg: rgba(20, 128, 252, .12);--cell-used-text: #0a49b5;--cell-maint-bg: rgba(252, 190, 45, .18);--cell-maint-text: #8a5d00;--cell-common-bg: rgba(0, 182, 155, .14);--cell-common-text: #007d6a;--canvas-bg: #eef0f5;--canvas-dot: rgba(35, 43, 51, .12)}.theme-dark{--color-primary-700: #ffffff;--color-primary-light: rgba(72, 128, 255, .3);--color-bg-main: #1a1d23;--color-bg-card: #242830;--color-bg-sidebar: #1e2228;--color-bg-topbar: #1e2228;--color-border: #2e3340;--color-divider: rgba(255, 255, 255, .1);--color-shadow: rgba(0, 0, 0, .25);--color-bg-light: #1e2228;--color-bg-subtle: #20242c;--color-bg-neutral: #2e3340;--color-bg-header: #2a2f3a;--color-bg-white: #242830;--color-text-main: #e8e9ec;--color-text-pri: #e8e9ec;--color-text-sec: #afb4c2;--color-text-muted: rgba(232, 233, 236, .7);--color-text-label: #a0a3ab;--color-text-dark: #e8e9ec;--color-text-disabled: #717887;--color-text-link: #75a4ff;--color-border-sec: #484d59;--color-border-light: #4a5164;--color-border-medium: #3a3f4e;--chart-grid: rgba(255, 255, 255, .05);--shadow-card: 0px 4px 12px -1px rgba(0, 0, 0, .4);--cell-empty-bg: #2a2f3a;--cell-used-bg: rgba(20, 128, 252, .28);--cell-used-text: #cfe3ff;--cell-maint-bg: rgba(252, 190, 45, .22);--cell-maint-text: #ffd77a;--cell-common-bg: rgba(0, 182, 155, .24);--cell-common-text: #8ff0dd;--canvas-bg: #15181d;--canvas-dot: rgba(232, 233, 236, .1)}body{font-family:var(--font-kor);font-size:14px;line-height:120%;color:var(--color-text-main);background:var(--color-bg-main);margin:0}*,*:before,*:after{box-sizing:border-box}.btn{display:inline-flex;align-items:center;justify-content:center;gap:3px;border:1px solid rgba(0,0,0,.1);font-family:var(--font-kor);font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;vertical-align:middle;outline:none;-webkit-user-select:none;user-select:none;transition:background .2s,border-color .2s,color .2s,transform .1s}.btn:focus-visible{box-shadow:var(--shadow-focus)}.btn:active:not(.is-disabled){transform:scale(.97)}.btn.size-xsmall{height:28px;padding:0 10px;font-size:12px;border-radius:6px;min-width:44px;font-weight:400}.btn.size-small{height:32px;padding:0 12px;font-size:13px;border-radius:8px;min-width:44px;font-weight:400}.btn.size-medium{height:40px;padding:0 16px;font-size:14px;border-radius:8px;min-width:44px}.btn.size-large{height:50px;padding:0 20px;font-size:15px;border-radius:10px;min-width:44px}.btn.type-pri{background:var(--color-primary-500);color:#fff}.btn.type-pri:hover{background:var(--color-primary-600)}.btn.type-base{background:var(--color-base);color:#fff}.btn.type-base:hover{background:var(--color-base-hover)}.btn.type-sec{background:var(--color-bg-white);border:1px solid var(--color-border-sec);color:var(--color-text-sec)}.btn.type-sec:hover{border-color:var(--color-border-medium);background:var(--color-bg-neutral)}.btn.type-accent{background:var(--color-accent);color:#fff}.btn.type-accent:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn.type-warning{background:var(--color-warning);color:#fff}.btn.type-warning:hover{background:#e05070}.btn.type-success{background:var(--color-success-solid);color:#fff}.btn.type-success:hover{background:var(--color-success-solid-hover)}.btn.is-disabled{background:var(--color-bg-neutral)!important;color:var(--color-text-disabled)!important;cursor:not-allowed;pointer-events:none}.btn-group{display:inline-flex;gap:8px}.badge{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 12px;border-radius:9999px;font-family:var(--font-kor);font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.badge.size-large{height:32px;padding:0 14px}.badge__dot{width:6px;height:6px;border-radius:9999px;background:currentColor;flex-shrink:0}.badge--filled-success{background:var(--color-success-solid);color:#fff}.badge--filled-warning{background:var(--color-warning-solid);color:#fff}.badge--filled-danger{background:var(--color-danger-solid);color:#fff}.badge--filled-info{background:var(--color-info-solid);color:#fff}.badge--filled-neutral{background:var(--color-neutral-solid);color:#fff}.badge--soft-success{background:var(--badge-success-bg);color:var(--badge-success-color)}.badge--soft-warning{background:var(--badge-warning-bg);color:var(--badge-warning-color)}.badge--soft-danger{background:var(--badge-danger-bg);color:var(--badge-danger-color)}.badge--soft-info{background:var(--badge-info-bg);color:var(--badge-info-color)}.badge--soft-neutral{background:var(--badge-neutral-bg);color:var(--badge-neutral-color)}.badge--outline-success{background:transparent;color:var(--badge-success-color);border:1.5px solid var(--badge-success-border)}.badge--outline-warning{background:transparent;color:var(--badge-warning-color);border:1.5px solid var(--badge-warning-border)}.badge--outline-danger{background:transparent;color:var(--badge-danger-color);border:1.5px solid var(--badge-danger-border)}.badge--outline-info{background:transparent;color:var(--badge-info-color);border:1.5px solid var(--badge-info-border)}.badge--outline-neutral{background:transparent;color:var(--badge-neutral-color);border:1.5px solid var(--badge-neutral-border)}.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9999px;font-family:var(--font-display);font-size:10px;font-weight:700;line-height:1;color:#fff}.badge-count--primary{background:var(--color-primary-500)}.badge-count--danger{background:var(--color-danger-solid)}.badge-count--warning{background:var(--color-warning-solid);color:#1a1a1a}.c-input{display:flex;flex-direction:column;gap:8px}.c-input__label{font-size:14px;font-weight:600;color:var(--color-text-sec);margin-left:6px}.c-input__req{color:var(--color-warning);margin-left:2px}.c-input__wrap{position:relative;display:flex;align-items:center}.c-input__wrap input{width:100%;height:100%;padding:0 12px;border:1.5px solid var(--color-border-light);border-radius:inherit;background:var(--color-bg-white);font:inherit;font-weight:500;color:var(--color-text-sec);outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.c-input__wrap input:hover:not(:disabled){border-color:var(--color-border-medium)}.c-input__wrap input::placeholder{color:var(--color-text-disabled);font-weight:400}.c-input__wrap input:focus{border-color:var(--color-primary-600);box-shadow:var(--shadow-focus)}.c-input__wrap input:disabled{background:var(--color-bg-neutral);color:var(--color-text-disabled);cursor:not-allowed}.c-input__wrap.size-small{height:32px;font-size:13px;border-radius:8px}.c-input__wrap.size-medium{height:40px;font-size:14px;border-radius:8px}.c-input__wrap.size-large{height:48px;font-size:15px;border-radius:10px}.c-input__hint{font-size:12px;color:var(--color-text-muted)}.c-input.error input{border-color:var(--color-warning)}.c-input.error .c-input__hint{color:var(--color-warning)}.c-input.success input{border-color:var(--color-success)}.c-input.success .c-input__hint{color:var(--color-success)}.c-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.c-switch__input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.c-switch__track{position:relative;flex-shrink:0;width:48px;height:26px;border-radius:9999px;background:var(--color-border-medium);transition:background .2s}.c-switch__thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000038;transition:transform .2s}.c-switch__label{font-size:14px;font-weight:500;color:var(--color-text-muted)}.c-switch__input:checked~.c-switch__track{background:var(--color-primary-500)}.c-switch__input:checked~.c-switch__track .c-switch__thumb{transform:translate(22px)}.c-switch__input:focus-visible~.c-switch__track{box-shadow:var(--shadow-focus)}.ui-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.ui-tabs__item{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:transparent;color:var(--color-text-sec);font-family:var(--font-kor);font-size:12px;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;outline:none}.ui-tabs__item:hover{color:var(--color-text-pri)}.ui-tabs__item:focus-visible{box-shadow:var(--shadow-focus)}.ui-tabs__count{min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;border-radius:9999px;background:var(--color-bg-neutral);color:var(--color-text-muted);font-size:10px;font-weight:700}.ui-tabs--underline{gap:16px;border-bottom:1px solid var(--color-border-light)}.ui-tabs--underline .ui-tabs__item{position:relative;min-height:44px;padding:0 2px}.ui-tabs--underline .ui-tabs__item:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:9999px;background:transparent}.ui-tabs--underline .ui-tabs__item.is-active{color:var(--color-primary-600)}.ui-tabs--underline .ui-tabs__item.is-active:after{background:var(--color-primary-500)}.ui-tabs--segmented{width:fit-content;max-width:100%;padding:4px;border-radius:10px;background:var(--color-bg-neutral)}.ui-tabs--segmented .ui-tabs__item{min-height:36px;padding:0 14px;border-radius:8px}.ui-tabs--segmented .ui-tabs__item.is-active{background:var(--color-bg-card);color:var(--color-primary-600);box-shadow:0 1px 2px #0000000f,0 0 0 1px #0000000a}.c-table-wrap{width:100%;overflow-x:auto;border-radius:12px;border:1px solid var(--color-border-light);background:var(--color-bg-white)}.c-table{width:100%;border-collapse:collapse;font-size:14px;color:var(--color-text-sec)}.c-table thead{background:var(--color-bg-header)}.c-table th{padding:14px 20px;font-size:14px;font-weight:700;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--color-border-light);white-space:nowrap}.c-table td{padding:10px 20px;border-bottom:1px solid var(--color-border-light);vertical-align:middle;background:var(--color-bg-white)}.c-table tbody tr:hover td{background:#8774ff0a}.c-table--stripe tbody tr:nth-child(2n) td{background:var(--color-bg-subtle)}.c-table .align-center{text-align:center}.c-table .align-right{text-align:right}.table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:0 0 12px 12px;background:var(--color-bg-card)}.table-footer__summary{color:var(--color-text-muted);font-size:12px;font-weight:500}.table-footer__summary strong{color:var(--color-primary-600);font-variant-numeric:tabular-nums}.pagination{display:inline-flex;align-items:center;gap:4px}.pagination__item{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:transparent;color:var(--color-text-gray);font-family:var(--font-kor);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}.pagination__item:hover{background:var(--color-primary-600);color:#fff}.pagination__item.is-active{background:var(--color-primary-500);color:#fff}.pagination__item.is-disabled{color:var(--color-text-disabled);cursor:not-allowed;opacity:.55}.sidebar{width:var(--sidebar-width);background:var(--color-bg-sidebar);border-right:1px solid var(--color-divider);display:flex;flex-direction:column;overflow:hidden}.sidebar-logo{height:var(--topbar-height);display:flex;align-items:center;justify-content:center;padding:0 24px;border-bottom:1px solid var(--color-divider)}.sidebar-section-title{font-size:12px;font-weight:500;letter-spacing:.5px;color:var(--color-text-muted);padding:10px 24px 4px;white-space:nowrap}.sidebar-divider{height:1px;background:var(--color-divider);margin:8px 16px}.nav-item{display:flex;align-items:center;gap:10px;padding:0 14px 0 20px;height:46px;border-radius:8px;margin:2px 10px;color:var(--color-text-main);font-size:14px;letter-spacing:.3px;cursor:pointer;white-space:nowrap;font-weight:500;text-decoration:none}.nav-item:hover{background:var(--color-primary-light);color:var(--color-primary)}.nav-item.active{background:var(--color-primary);color:#fff}.nav-badge{margin-left:auto;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:2px 6px}.nav-dot{width:22px;text-align:center;flex-shrink:0;font-size:8px}.c-datepick{display:flex;flex-direction:column;gap:8px}.c-datepick__label{font-size:14px;font-weight:600;color:var(--color-text-sec);margin-left:6px}.c-datepick__wrap{position:relative;display:flex;align-items:center;width:100%}.c-datepick__ctrl{width:100%;border:1.5px solid var(--color-border-light);border-radius:8px;background:var(--color-bg-white);font-family:var(--font-kor);font-weight:500;color:var(--color-text-sec);outline:none;cursor:pointer;padding-right:36px;transition:border-color .2s,box-shadow .2s}.c-datepick__ctrl::placeholder{color:var(--color-text-disabled);font-weight:400}.c-datepick__ctrl:hover{border-color:var(--color-primary-400)}.c-datepick__ctrl:focus{border-color:var(--color-primary-600);box-shadow:var(--shadow-focus)}.c-datepick__icon{position:absolute;right:10px;pointer-events:none;color:var(--color-text-muted);display:flex;align-items:center}.c-datepick__wrap.size-small .c-datepick__ctrl{height:32px;padding-left:10px;font-size:13px}.c-datepick__wrap.size-medium .c-datepick__ctrl{height:40px;padding-left:12px;font-size:14px}.c-datepick__wrap.size-large .c-datepick__ctrl{height:48px;padding-left:14px;font-size:15px;border-radius:10px}.c-datepick-range{display:flex;flex-direction:column;gap:8px}.c-datepick-range__label{font-size:14px;font-weight:600;color:var(--color-text-dark)}.c-datepick-range__fields{display:flex;align-items:flex-end;gap:10px}.c-datepick-range__sep{font-size:14px;color:var(--color-text-muted);padding-bottom:10px;line-height:1;flex-shrink:0}.ui-datepicker{background:var(--color-bg-white);border:1.5px solid var(--color-border-light);border-radius:12px;box-shadow:0 8px 24px #0000001a;padding:14px;width:280px}.ui-datepicker-header{position:relative;display:flex;align-items:center;justify-content:center;min-height:28px;margin-bottom:12px}.ui-datepicker-title{font-size:14px;font-weight:700;color:var(--color-text-pri);line-height:1.4}.ui-datepicker-prev,.ui-datepicker-next{position:absolute;top:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--color-text-pri);cursor:pointer;border:0;background:transparent;font-size:14px}.ui-datepicker-prev{left:0}.ui-datepicker-next{right:0}.ui-datepicker-prev:hover,.ui-datepicker-next:hover{background:var(--color-primary-a15)}.ui-datepicker table{width:100%;border-collapse:separate;border-spacing:2px;table-layout:fixed}.ui-datepicker th{height:28px;font-size:12px;font-weight:700;color:var(--color-text-muted);text-align:center}.ui-datepicker td{padding:0}.ui-datepicker td a,.ui-datepicker td span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0 auto;border-radius:50%;font-size:13px;font-weight:500;color:var(--color-text-dark);text-decoration:none;cursor:pointer}.ui-datepicker td a:hover{background:var(--color-bg-neutral)}.ui-datepicker .is-today a{background:var(--color-primary-a15);color:var(--color-primary-500);font-weight:700}.ui-datepicker .is-selected a{background:var(--color-primary-500);color:#fff;font-weight:700}.ui-datepicker .is-other span{color:var(--color-text-disabled)}.ui-datepicker-buttonpane{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--color-border-light)}.ui-datepicker-buttonpane button{min-width:56px;height:30px;border:1px solid var(--color-border-light);border-radius:10px;background:var(--color-bg-white);color:var(--color-text-pri);font-family:var(--font-kor);font-size:12px;cursor:pointer}.ui-datepicker-buttonpane button:hover{background:var(--color-bg-neutral)}.chart-card{background:var(--color-bg-white);border-radius:14px;box-shadow:6px 6px 54px var(--color-shadow);padding:24px 28px}.chart-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:12px;flex-wrap:wrap}.chart-card__title{font-size:17px;font-weight:700;color:var(--color-text-pri)}.chart-card__sub{font-size:12px;color:var(--color-text-muted)}.chart-card__body{position:relative}.chart-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}.chart-legend__item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--chart-legend-text);font-weight:500}.chart-legend__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.bar-chart{display:flex;gap:8px;height:160px}.bar-chart__y-axis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding-bottom:2px;width:34px;flex-shrink:0}.bar-chart__y-axis span,.bar-chart__label,.line-chart__x-axis span{font-size:9px;color:var(--color-text-muted)}.bar-chart__y-axis span,.line-chart__x-axis span{font-family:Courier New,monospace}.bar-chart__plot{flex:1;position:relative;display:flex;flex-direction:column}.bar-chart__grid-lines{position:absolute;top:0;left:0;right:0;bottom:20px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.bar-chart__grid-lines span{display:block;border-top:1px solid var(--chart-grid);width:100%}.bar-chart__bars{flex:1;display:flex;align-items:flex-end;gap:8px;position:relative;z-index:1}.bar-chart__group{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.bar-chart__bar{width:100%;border-radius:4px 4px 0 0;cursor:pointer}.bar-chart__bar:hover{opacity:.75}.bar-chart__label{white-space:nowrap}.line-chart svg{width:100%;height:160px;display:block}.line-chart__x-axis{display:flex;justify-content:space-between;margin-top:4px}html,body,#root{height:100%}body{margin:0}html.theme-dark{color-scheme:dark}.app-shell{display:flex;min-height:100vh;background:var(--color-bg-main);color:var(--color-text-main);font-family:var(--font-kor);font-size:14px}.app-main{flex:1 1 auto;min-width:0;margin-left:72px}.rail{z-index:20;width:72px;flex-shrink:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 0;background:var(--color-bg-sidebar);border-right:1px solid var(--color-divider);position:fixed;top:0;left:0;height:100vh}.rail__item{width:60px;height:56px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--color-text-sec);border:0;background:transparent;cursor:pointer;font-family:var(--font-kor)}.rail__item:hover{background:var(--color-bg-neutral)}.rail__item.active{background:var(--color-primary-light);color:var(--color-primary-600)}.rail__label{font-size:11px;font-weight:600;letter-spacing:-.2px}.rail__spacer{flex-grow:1}.rail__round{width:40px;height:40px;border-radius:20px;border:1px solid var(--color-border-light);background:var(--color-bg-card);color:var(--color-text-sec);display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:var(--font-kor)}.rail__logout{margin-top:6px}.rail-search{position:relative;width:44px;height:44px;flex-shrink:0;margin-bottom:12px}.rail-search__box{position:absolute;left:0;top:0;width:44px;height:44px;box-sizing:border-box;display:flex;align-items:center;overflow:hidden;border-radius:12px;border:1px solid var(--color-border-light);background:var(--color-bg-card);box-shadow:0 1px 2px #0000000f;transition:width .22s ease-out,border-color .22s,box-shadow .22s}.rail-search.is-open .rail-search__box{width:320px;border-color:var(--color-primary-600);box-shadow:var(--shadow-focus),var(--shadow-overlay)}.rail-search__toggle{width:42px;height:42px;flex-shrink:0;padding:0;border:0;background:transparent;color:var(--color-primary-600);display:flex;align-items:center;justify-content:center;cursor:pointer}.rail-search__input{flex:1 1 auto;min-width:0;height:100%;padding:0 12px 0 0;border:0;outline:none;background:transparent;font-family:var(--font-kor);font-size:14px;font-weight:500;color:var(--color-text-main);opacity:0;transition:opacity .15s}.rail-search.is-open .rail-search__input{opacity:1;transition-delay:.08s}.rail-search__input::placeholder{color:var(--color-text-disabled);font-weight:400}.rail-search__list{position:absolute;left:0;top:50px;width:320px;max-height:min(420px,calc(100vh - 80px));box-sizing:border-box;overflow-y:auto;padding:4px;border:1.5px solid var(--color-border-light);border-radius:10px;background:var(--color-bg-white);box-shadow:var(--shadow-overlay);animation:rail-search-in .16s ease-out}.rail-search__item{display:flex;align-items:baseline;gap:8px;width:100%;box-sizing:border-box;padding:9px 10px;border:0;border-radius:6px;background:transparent;font-family:var(--font-kor);font-size:14px;text-align:left;color:var(--color-text-main);cursor:pointer}.rail-search__item.is-active{background:var(--color-primary-light);color:var(--color-primary-600)}.rail-search__label{font-weight:600}.rail-search__group{margin-left:auto;font-size:12px;color:var(--color-text-sec)}.rail-search__empty{padding:10px;font-size:13px;color:var(--color-text-sec)}@keyframes rail-search-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){.rail-search__box,.rail-search__input{transition:none}.rail-search__list{animation:none}}.page{box-sizing:border-box;padding:28px 28px 40px;display:flex;flex-direction:column;gap:20px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--color-divider)}.page-header__title{margin:0;font-size:26px;font-weight:700}.page-header__sub{font-size:13px;color:var(--color-text-sec)}.card{padding:24px;border-radius:14px;background:var(--color-bg-card);box-shadow:var(--shadow-card)}.settings{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.settings-nav{flex:1 1 180px;max-width:200px;display:flex;flex-direction:column;gap:2px}.settings-nav__group{padding:14px 14px 8px;font-size:12px;font-weight:600;color:var(--color-text-sec)}.settings-nav__group:first-child{padding-top:4px}.settings-nav__link{padding:10px 14px;border-radius:8px;text-decoration:none;color:var(--color-text-pri)}.settings-nav__link.active{background:var(--color-primary-light);color:var(--color-primary-600);font-weight:600}.settings-body{flex:999 1 560px;min-width:0}@media (min-width: 960px){.settings-nav{position:sticky;top:24px}}.loc-tree__item{width:100%;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;border:0;background:transparent;cursor:pointer;font-family:var(--font-kor);font-size:14px;text-align:left;color:var(--color-text-main)}.loc-tree__item:hover{background:var(--color-bg-neutral)}.loc-tree__item[aria-current=true]{background:var(--color-primary-light);color:var(--color-primary-600)}.loc-tree__building{font-weight:700}.loc-tree__floor{padding-left:34px}.dept-tree{flex:1 1 220px;max-width:260px;box-sizing:border-box;padding:12px;display:flex;flex-direction:column;gap:8px;position:sticky;top:16px;max-height:calc(100vh - 32px)}.dept-tree__list{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.dept-tree__row{display:flex;align-items:center;gap:2px}.dept-tree__toggle{flex:0 0 22px;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--color-text-sec);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}button.dept-tree__toggle:hover{background:var(--color-bg-neutral)}.dept-tree__toggle svg{transition:transform .12s}.dept-tree__toggle[data-open=true] svg{transform:rotate(90deg)}.dept-tree__item{flex:1 1 auto;min-width:0}.dept-tree__name{min-width:0;display:flex;flex-direction:column;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dept-tree__name small{font-size:11px;font-weight:500;color:var(--color-text-sec);overflow:hidden;text-overflow:ellipsis}.loc-tree__item[aria-current=true] .dept-tree__name small{color:inherit}.dept-tree__item:focus-visible{outline:2px solid var(--color-primary-600);outline-offset:-2px}.dept-tree__empty{padding:14px 10px;text-align:center;font-size:13px;color:var(--color-text-sec)}.loc-tree__meta{margin-left:auto;font-size:12px;font-weight:500;color:var(--color-text-sec)}.floor-chip{display:flex;align-items:center;gap:6px;height:36px;padding:0 10px;border-radius:8px;border:1px solid var(--color-border-light);background:var(--color-bg-card);color:var(--color-text-sec);font-family:var(--font-display);font-size:13px;font-weight:700;cursor:pointer}.floor-chip input{accent-color:var(--color-primary-500)}.floor-chip.is-on{border:1.5px solid var(--color-primary-500);background:var(--color-primary-light);color:var(--color-primary-600)}.login{position:relative;min-height:100vh;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-end;padding:48px clamp(24px,8vw,140px);overflow:hidden;background:#000;font-family:var(--font-kor);color:var(--color-text-main)}.login__bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:30% center}.login__card{position:relative;width:100%;max-width:460px;box-sizing:border-box;padding:44px 40px 32px;display:flex;flex-direction:column;gap:14px;border-radius:20px;background:color-mix(in srgb,var(--color-bg-card) 94%,transparent);box-shadow:0 12px 40px #14285024;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login__brand{align-self:flex-start;width:100px;height:auto;margin-bottom:8px}.login__title{margin:0;font-size:30px;font-weight:700;line-height:1.25}.login__sub{margin:0 0 14px;font-size:15px;color:var(--color-text-sec)}.login__field{display:flex;align-items:center;gap:12px;height:54px;box-sizing:border-box;padding:0 16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-card);color:var(--color-text-gray)}.login__field:focus-within{border-color:var(--color-primary-500);box-shadow:var(--shadow-focus)}.login__field svg{flex:none;width:20px;height:20px}.login__field input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:var(--color-text-main)}.login__field input::placeholder{color:var(--color-text-gray)}.login__field input:-webkit-autofill,.login__field input:-webkit-autofill:hover,.login__field input:-webkit-autofill:focus,.login__field input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px var(--color-bg-card) inset;-webkit-text-fill-color:var(--color-text-main);caret-color:var(--color-text-main);transition:background-color 9999s ease-out 0s}.login__eye{flex:none;display:flex;padding:4px;border:0;background:transparent;color:inherit;cursor:pointer;border-radius:6px}.login__eye:hover{color:var(--color-text-main)}.login__note{margin-top:4px;font-size:12px;color:var(--color-text-sec);text-align:center}.login__foot{position:absolute;left:24px;bottom:16px;font-size:12px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7)}@media (max-width: 720px){.login{justify-content:center}.login__card{padding:36px 24px 28px}}.login__error{padding:10px 14px;border-radius:10px;background:var(--color-danger-soft-bg);color:var(--color-danger-soft-text);font-size:13px;font-weight:600}.c-input__wrap select{width:100%;height:100%;padding:0 30px 0 12px;border:1.5px solid var(--color-border-light);border-radius:inherit;background-color:var(--color-bg-white);font:inherit;font-weight:500;color:var(--color-text-sec);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}.c-input__wrap select:focus{border-color:var(--color-primary-600);box-shadow:var(--shadow-focus)}.c-input__wrap select:disabled,.c-input__wrap input:disabled{background-color:var(--color-bg-neutral);color:var(--color-text-disabled);cursor:not-allowed}.icon-btn{width:32px;height:32px;flex-shrink:0;border:0;border-radius:8px;background:transparent;color:var(--color-text-sec);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover:not(:disabled){background:var(--color-bg-neutral)}.icon-btn:disabled{color:var(--color-text-disabled);cursor:not-allowed}.icon-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.icon-btn--sm{width:24px;height:24px;border-radius:9999px}.icon-btn--sm:hover:not(:disabled){color:var(--color-text-main)}.dialog{max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);box-sizing:border-box;padding:0;border:0;border-radius:var(--radius-card);background:var(--color-bg-card);color:var(--color-text-main);box-shadow:var(--shadow-overlay);font-family:var(--font-kor);font-size:14px}.dialog[open]{display:flex;flex-direction:column}.dialog::backdrop{background:#0f121873}.dialog__head{display:flex;align-items:center;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--color-divider)}.dialog__title{margin:0;flex-grow:1;font-size:17px;font-weight:700}.dialog__body{padding:18px 20px;overflow:auto;display:flex;flex-direction:column;gap:14px}.dialog__foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:14px 20px;border-top:1px solid var(--color-divider)}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.muted{font-size:12px;color:var(--color-text-sec)}.panel-section{display:flex;flex-direction:column;gap:10px}.panel-section+.panel-section{border-top:1px solid var(--color-divider);padding-top:16px}.panel-section__title{margin:0;font-size:13px;font-weight:700;color:var(--color-text-pri)}.kv{margin:0;display:grid;grid-template-columns:84px minmax(0,1fr);row-gap:8px;font-size:13px}.kv--center{align-items:center}.kv dt{color:var(--color-text-sec)}.kv dd{margin:0;color:var(--color-text-main);font-variant-numeric:tabular-nums}.pick-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto}.pick-item{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;padding:8px 10px;border-radius:8px;border:1px solid var(--color-border-light);background:var(--color-bg-card);color:var(--color-text-main);font-family:var(--font-kor);font-size:13px;text-align:left;cursor:pointer}.pick-item:hover{background:var(--color-bg-neutral)}.pick-item.is-on{border-color:var(--color-primary-500);background:var(--color-primary-light)}.pick-item__main{display:flex;flex-direction:column;gap:2px;min-width:0;flex-grow:1}.pick-item__name{font-weight:600}.pick-item__sub{font-size:12px;color:var(--color-text-sec)}.avatar{width:36px;height:36px;flex-shrink:0;border-radius:18px;background:var(--color-primary-500);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}.result-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto;font-size:13px}.result-list li{padding:8px 10px;border-radius:8px;background:var(--color-bg-subtle)}.chip-toggle{flex:1;min-width:52px;height:36px;border-radius:8px;border:1px solid var(--color-border-light);background:var(--color-bg-card);color:var(--color-text-sec);font-family:var(--font-kor);font-size:13px;font-weight:600;cursor:pointer}.chip-toggle.is-on{border-color:var(--color-primary-500);background:var(--color-primary-500);color:#fff}.fc{position:relative;flex:1 1 auto;min-width:0;min-height:0;overflow:auto;background-color:var(--canvas-bg);background-image:radial-gradient(var(--canvas-dot) 1px,transparent 1px);background-size:16px 16px}.fc{-webkit-user-select:none;user-select:none}.fc.is-pan{cursor:grab}.fc.is-pan.is-panning{cursor:grabbing}.fc__inner{position:relative;transform-origin:0 0}.fc__floor{position:absolute;left:0;top:0;max-width:none;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.85}.theme-dark .fc__floor{opacity:.45}.fc-zone{position:absolute;box-sizing:border-box;padding:10px 12px 12px;border-radius:12px;background:var(--color-bg-card);box-shadow:var(--shadow-card);border:1px solid var(--color-border-light)}.fc-zone.is-selected{border:2px solid var(--color-primary-500)}.fc-zone__head{height:28px;width:100%;display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:0;border:0;background:transparent;font-family:var(--font-kor);color:var(--color-text-main);cursor:pointer;text-align:left}.fc-zone__head.is-draggable{cursor:move;touch-action:none}.fc-zone__head:focus-visible{outline:none}.fc-zone__name{font-size:13px;font-weight:700;white-space:nowrap}.fc-zone__meta{font-size:12px;color:var(--color-text-sec);white-space:nowrap}.fc-rows{display:flex;flex-direction:column;gap:4px}.fc-row{display:flex;gap:4px;align-items:center}.fc-row__label{width:28px;flex-shrink:0;text-align:center;font-size:10px;font-weight:700;color:var(--color-text-gray)}.fc-row__label.is-priority{height:20px;line-height:20px;border-radius:6px;background:var(--color-primary-500);color:#fff}.fc-gap{width:40px;height:46px;flex-shrink:0}.fc-cell{position:relative;width:40px;height:46px;flex-shrink:0;padding:0;box-sizing:border-box;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font-family:var(--font-kor);background:var(--cell-empty-bg);border:1px solid var(--color-border-sec);color:var(--color-text-sec)}.fc-cell__no{font-family:var(--font-display);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;max-width:38px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fc-cell__name{font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:36px}.fc-cell.is-used{background:var(--cell-used-bg);border-color:var(--color-primary-border);color:var(--cell-used-text)}.fc-cell.is-common{background:var(--cell-common-bg);border-color:var(--badge-success-border);color:var(--cell-common-text)}.fc-cell.is-maint{background:var(--cell-maint-bg);border-color:var(--badge-warning-border);color:var(--cell-maint-text)}.fc-cell.is-unused{background:transparent;border-style:dashed;color:var(--color-text-disabled)}.fc-cell.is-selected{border-color:var(--color-primary-600);box-shadow:inset 0 0 0 1px var(--color-primary-600)}.fc-cell.is-target{background:var(--color-primary-a15);border:2px dashed var(--color-primary-500);color:var(--color-primary-600)}.fc-cell.is-changed:after{content:"";position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:3px;background:var(--color-warning-solid)}.fc-cell:focus-visible{box-shadow:var(--shadow-focus);outline:none}.fc-cell.is-selected:focus-visible{box-shadow:inset 0 0 0 1px var(--color-primary-600),var(--shadow-focus)}.fc-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-sec);font-size:14px}.fc-float{position:absolute;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 12px;border-radius:10px;background:var(--color-bg-card);box-shadow:var(--shadow-overlay);font-size:12px;color:var(--color-text-sec)}.legend-chip{display:inline-flex;align-items:center;gap:6px}.legend-chip i{width:12px;height:12px;border-radius:3px;box-sizing:border-box}.editor{height:100vh;min-height:640px;display:flex;flex-direction:column}.editor__bar{min-height:56px;flex-shrink:0;box-sizing:border-box;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 16px;background:var(--color-bg-topbar);border-bottom:1px solid var(--color-divider)}.editor__sep{width:1px;height:24px;background:var(--color-divider)}.editor__body{flex:1 1 auto;min-height:0;display:flex}.editor__left{flex:0 0 264px;min-height:0;box-sizing:border-box;display:flex;flex-direction:column;background:var(--color-bg-card);border-right:1px solid var(--color-divider);overflow:auto}.editor__right{flex:0 0 320px;min-height:0;box-sizing:border-box;overflow:auto;background:var(--color-bg-card);border-left:1px solid var(--color-divider)}.editor__center{flex:1 1 auto;min-width:0;display:flex;position:relative}.editor__foot{height:34px;flex-shrink:0;display:flex;align-items:center;gap:16px;padding:0 16px;background:var(--color-bg-topbar);border-top:1px solid var(--color-divider);font-size:12px;color:var(--color-text-sec);overflow:hidden;white-space:nowrap}.editor__foot strong{color:var(--color-text-main)}.tool-group{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--color-bg-neutral)}.tool-group .icon-btn.is-active{background:var(--color-bg-card);color:var(--color-primary-600);box-shadow:0 1px 2px #0000000f}.zoom{display:flex;align-items:center;gap:2px;height:32px;padding:0 2px;box-sizing:border-box;border:1px solid var(--color-border-light);border-radius:8px;background:var(--color-bg-card)}.zoom__value{min-width:48px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;cursor:pointer;text-align:center;font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--color-text-pri);font-variant-numeric:tabular-nums}.zoom__value:hover{background:var(--color-bg-neutral)}.fc-marquee{position:absolute;display:none;z-index:3;pointer-events:none;box-sizing:border-box;border:1px solid var(--color-primary-500);background:var(--color-primary-a15);border-radius:2px}.zone-card{width:100%;box-sizing:border-box;text-align:left;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:10px;cursor:pointer;font-family:var(--font-kor);background:var(--color-bg-card);border:1px solid var(--color-border-light);color:var(--color-text-main)}.zone-card.is-selected{background:var(--color-primary-light);border:1.5px solid var(--color-primary-500)}.zone-card__bar{height:6px;border-radius:9999px;background:var(--color-bg-neutral);overflow:hidden}.zone-card__bar>i{display:block;height:100%;border-radius:9999px;background:var(--color-primary-500)}.add-zone{height:40px;border:1.5px dashed var(--color-border-sec);border-radius:10px;background:transparent;color:var(--color-text-sec);font-family:var(--font-kor);font-size:13px;font-weight:600;cursor:pointer}.user-chip{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;border:1px solid var(--color-border-light);background:var(--color-bg-card);cursor:grab}.user-chip.is-on{border-color:var(--color-primary-500);background:var(--color-primary-light)}.dir-btn{height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:8px;border:1px solid var(--color-border-light);background:var(--color-bg-card);color:var(--color-text-sec);font-family:var(--font-kor);font-size:12px;cursor:pointer}.dir-preview{display:grid;gap:3px;justify-content:center;padding:10px;border-radius:8px;background:var(--color-bg-subtle)}.dir-preview__cell{height:22px;display:flex;align-items:center;justify-content:center;border-radius:4px;border:1px solid var(--color-border-sec);background:var(--cell-empty-bg);color:var(--color-text-sec);font-family:var(--font-display);font-size:10px;font-weight:600;font-variant-numeric:tabular-nums}.dir-preview__cell.is-first{border-color:var(--color-primary-500);background:var(--color-primary-500);color:#fff}.dir-btn.is-on{border:1.5px solid var(--color-primary-500);background:var(--color-primary-light);color:var(--color-primary-600);font-weight:600}.editor__right,.resv__aside{overflow-x:hidden}.editor__right .c-datepick-range__fields,.resv__aside .c-datepick-range__fields{gap:6px}.editor__right .c-datepick__wrap,.resv__aside .c-datepick__wrap{flex:1 1 0;min-width:0}.ui-datepicker .is-selected a:hover{background:var(--color-primary-600);color:#fff}.ui-datepicker-title--btn{border:0;background:transparent;font-family:var(--font-kor);cursor:pointer;padding:2px 8px;border-radius:8px}.ui-datepicker-title--btn:hover{background:var(--color-bg-neutral)}.ui-datepicker-months{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px 0}.ui-datepicker-months button{height:40px;border:0;border-radius:10px;background:transparent;color:var(--color-text-dark);font-family:var(--font-kor);font-size:13px;font-weight:500;cursor:pointer}.ui-datepicker-months button:hover{background:var(--color-bg-neutral)}.ui-datepicker-months button.is-selected,.ui-datepicker-months button.is-selected:hover{background:var(--color-primary-500);color:#fff;font-weight:700}.editor__right .c-datepick__wrap .c-datepick__ctrl,.resv__aside .c-datepick__wrap .c-datepick__ctrl{padding-left:8px;padding-right:28px;font-size:12px}.resv{display:flex;min-height:100vh}.resv__main{flex:1 1 auto;min-width:0;box-sizing:border-box;padding:28px 28px 32px;display:flex;flex-direction:column;gap:16px}.resv__aside{flex:0 0 360px;box-sizing:border-box;background:var(--color-bg-card);border-left:1px solid var(--color-divider);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}.resv__check{width:18px;height:18px;margin:0;vertical-align:middle;cursor:pointer;accent-color:var(--color-primary-500)}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px 20px;border-radius:14px;background:var(--color-bg-card);box-shadow:var(--shadow-card)}.select-bar{position:sticky;bottom:16px;z-index:5;box-sizing:border-box;min-height:48px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 16px;border-radius:10px;background:var(--color-base);color:#fff;font-size:13px;box-shadow:0 8px 24px #00000038;animation:select-bar-up .16s ease-out}@keyframes select-bar-up{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion: reduce){.select-bar{animation:none}}.select-bar .btn{background:#ffffff1f;color:#fff;border-color:#fff3}.select-bar__sep{width:1px;height:16px;background:#ffffff4d}.select-bar__clear{border:0;background:transparent;color:#fff;font-family:var(--font-kor);font-size:13px;cursor:pointer}.c-table tr.is-focus td{background:var(--color-primary-light)}.c-table tr.is-checked td{background:var(--color-bg-subtle)}.c-table tbody tr.is-clickable{cursor:pointer}.resv-map{position:relative;display:flex;height:640px;border-radius:12px;overflow:hidden;border:1px solid var(--color-border-light)}@media (max-width: 1100px){.editor{height:auto}.editor__body{flex-wrap:wrap}.editor__left,.editor__right{flex:1 1 100%;max-height:420px;border:0;border-bottom:1px solid var(--color-divider)}.editor__center{flex:1 1 100%;height:560px}.resv{flex-wrap:wrap}.resv__aside{flex:1 1 100%;position:static;height:auto;border-left:0;border-top:1px solid var(--color-divider)}}.bar-chart{--bar-label-h: 22px;--bar-gap: 8px}.bar-chart__y-title{align-self:center;writing-mode:vertical-rl;text-orientation:sideways;transform:rotate(180deg);white-space:nowrap;font-size:12px;font-weight:700;color:var(--color-text-sec);margin-right:-4px}.bar-chart__y-axis{position:relative;display:block;width:40px;height:calc(100% - var(--bar-label-h));align-self:flex-start;padding:0}.bar-chart__y-axis span{position:absolute;right:0;transform:translateY(50%);font-size:12px;color:var(--color-text-sec);font-family:var(--font-display);font-variant-numeric:tabular-nums;line-height:1}.bar-chart__label{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--bar-label-lines, 1);overflow:hidden;font-size:12px;color:var(--color-text-sec);min-height:calc(var(--bar-label-h) - 4px);line-height:calc((var(--bar-label-h) - 4px) / var(--bar-label-lines, 1));text-align:center;white-space:normal;overflow-wrap:anywhere;word-break:keep-all}.bar-chart__label.is-colored{font-weight:600;color:color-mix(in srgb,var(--c) 72%,var(--color-text-main))}.bar-chart__grid-lines{display:block;bottom:var(--bar-label-h)}.bar-chart__grid-lines span{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--color-border-light)}.bar-chart__group{position:relative;min-width:0;border-radius:6px;transition:background-color .12s ease}.bar-chart__group.is-link{cursor:pointer}.bar-chart__group.is-hover{background:var(--color-bg-neutral)}.bar-chart__group+.bar-chart__group:before{content:"";position:absolute;left:calc(var(--bar-gap) / -2);bottom:0;width:1px;height:calc(var(--bar-label-h) - 4px);background:var(--color-border-light)}.bar-chart__cluster{flex:1 1 auto;min-height:0;width:100%;display:flex;gap:3px;align-items:flex-end;justify-content:center}.bar-chart__bar{max-width:36px;border-radius:3px 3px 0 0;opacity:.85;transform-origin:bottom;transition:height .3s ease,opacity .12s ease;animation:bar-grow .45s cubic-bezier(.2,.8,.2,1) backwards}.bar-chart__group.is-hover .bar-chart__bar{opacity:1}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (prefers-reduced-motion: reduce){.bar-chart__bar{animation:none;transition:none}}.chart-pop{position:absolute;top:0;z-index:3;transform:translate(-50%);display:flex;flex-direction:column;gap:4px;min-width:120px;padding:10px 12px;border-radius:10px;background:var(--color-bg-card);border:1px solid var(--color-border-light);box-shadow:var(--shadow-card);font-size:12px;color:var(--color-text-main);pointer-events:none;white-space:nowrap}.chart-pop.is-after{transform:translate(22px)}.chart-pop.is-before{transform:translate(calc(-100% - 22px))}.chart-pop strong{font-size:12px;color:var(--color-text-sec);font-weight:600}.chart-pop__row{display:flex;align-items:center;gap:6px}.chart-pop__row i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.chart-pop__note{color:var(--color-text-sec);font-size:12px}.chart-pop__row b{margin-left:auto;padding-left:14px;font-family:var(--font-display);font-weight:700;font-variant-numeric:tabular-nums}:root{--chart-series-1: var(--color-primary-500);--chart-series-2: var(--color-success-solid)}.chart-table{margin-top:10px;font-size:13px}.chart-table summary{cursor:pointer;color:var(--color-text-sec);font-weight:600;font-size:12px;margin-bottom:8px}.bar-chart__bar:focus-visible{outline:2px solid var(--color-text-main);outline-offset:1px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.kpi{display:flex;flex-direction:column;gap:10px;padding:20px 22px;border-radius:14px;background:var(--color-bg-card);box-shadow:var(--shadow-card)}.kpi__label{font-size:13px;font-weight:600;color:var(--color-text-sec)}.kpi__value{font-family:var(--font-display);font-size:30px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--color-text-main)}.kpi__sub{font-size:12px;color:var(--color-text-sec)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:16px}.dash-grid>.chart-card{display:flex;flex-direction:column}.dash-grid>.chart-card .chart-card__body{flex:1 1 auto;display:flex;flex-direction:column}.dash-grid>.chart-card .bar-chart{flex:1 1 auto}.panel{padding:22px 24px;border-radius:14px;background:var(--color-bg-card);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:14px;min-width:0}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel__title{margin:0;font-size:17px;font-weight:700;color:var(--color-text-pri)}.panel__link{font-size:13px;font-weight:600;color:var(--color-text-link);text-decoration:none}.usage-list{display:flex;flex-direction:column;gap:14px;max-height:322px;overflow-y:auto;margin:0 -8px;padding:0 8px}.usage-list>.usage-row{flex:none}.usage-row{display:grid;grid-template-columns:minmax(44px,120px) minmax(0,1fr) 120px;align-items:center;gap:12px;margin:0 -8px;padding:5px 8px;border-radius:8px;transition:background-color .12s ease}.usage-row:hover{background:var(--color-bg-neutral)}.usage-row__bar{position:relative;height:12px;border-radius:9999px;background:var(--color-bg-neutral);overflow:hidden}.usage-row__bar:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--color-bg-white);opacity:.7}.usage-row:hover .usage-row__bar{background:var(--color-bg-white)}.usage-row__bar>i{display:block;height:100%;border-radius:9999px;background:var(--chart-series-1);opacity:.9;transition:width .5s cubic-bezier(.2,.8,.2,1);animation:usage-grow .6s cubic-bezier(.2,.8,.2,1) backwards}.usage-row__bar>i.is-full{background:var(--color-warning-solid)}@keyframes usage-grow{0%{width:0}}@media (prefers-reduced-motion: reduce){.usage-row__bar>i{animation:none;transition:none}}.recent{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.recent li{display:grid;grid-template-columns:76px 64px minmax(0,1fr);align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border-light);font-size:13px}.recent__text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.c-table tr.is-picked td{background:var(--color-primary-light)}.lock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:4px}.lock-cell{height:28px;min-width:0;box-sizing:border-box;padding:0 2px;border-radius:6px;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;font-family:var(--font-display);font-size:10px;font-weight:700;background:var(--color-bg-neutral);border:1px solid var(--color-border-sec);color:var(--color-text-sec)}.lock-cell--open{background:var(--cell-maint-bg);border-color:var(--badge-warning-border);color:var(--cell-maint-text)}.lock-cell--use{background:var(--color-info-soft-bg);border-color:var(--badge-info-border);color:var(--color-info-soft-text)}.lock-cell--down{background:var(--color-danger-soft-bg);border-color:var(--badge-danger-border);color:var(--color-danger-soft-text)}.lock-cell--none{border-style:dashed;background:transparent}.lock-cell--dot{display:inline-block;width:10px;height:10px;padding:0;border-radius:3px}.alert-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--color-danger-soft-bg);color:var(--color-danger-soft-text);font-size:13px;font-weight:600}.floor-image{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:14px;border-radius:12px;border:1.5px dashed var(--color-border-sec)}.floor-image__preview{width:96px;height:64px;flex-shrink:0;border-radius:8px;object-fit:contain;background-color:var(--canvas-bg)}.floor-image__preview.is-empty{display:flex;align-items:center;justify-content:center;background-image:radial-gradient(var(--canvas-dot) 1px,transparent 1px);background-size:8px 8px;font-size:11px;color:var(--color-text-sec)}.c-input__wrap input.is-secret{-webkit-text-security:disc}.c-table td.table-empty{padding:32px 16px;text-align:center;font-size:14px;color:var(--color-text-sec)}.empty-state{margin:20px;padding:28px 20px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.empty-state.is-compact{margin:0;padding:20px 16px}.empty-state__icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary-700)}.empty-state__title{font-size:15px;font-weight:700;color:var(--color-text-main)}.empty-state__desc,.empty-state__tip{margin:0;word-break:keep-all}.empty-state__desc{font-size:13px;line-height:1.6;color:var(--color-text-sec)}.empty-state__tip{margin-top:4px;padding:8px 12px;border-radius:8px;background:var(--color-primary-light);color:var(--color-primary-700);font-size:12px;font-weight:600;line-height:1.5}.editor__right.is-empty,.resv__aside.is-empty{display:flex;flex-direction:column}.editor__right.is-empty:before,.resv__aside.is-empty:before{content:"";flex:1 1 0}.editor__right.is-empty:after,.resv__aside.is-empty:after{content:"";flex:1 1 0}.dd{position:relative;display:inline-block}.dd__btn{height:32px;min-width:64px;box-sizing:border-box;display:inline-flex;align-items:center;gap:8px;padding:0 10px 0 12px;border:1.5px solid var(--color-border-light);border-radius:8px;background:var(--color-bg-white);font-family:var(--font-kor);font-size:13px;font-weight:500;color:var(--color-text-main);cursor:pointer;white-space:nowrap;transition:border-color .2s,box-shadow .2s}.dd__btn:hover:not(:disabled){border-color:var(--color-border-medium)}.dd__btn:focus-visible,.dd__btn[aria-expanded=true]{border-color:var(--color-primary-600);box-shadow:var(--shadow-focus);outline:none}.dd__btn:disabled{background:var(--color-bg-neutral);color:var(--color-text-disabled);cursor:not-allowed}.dd__label{font-weight:600}.dd__meta{font-size:12px;font-weight:500;color:var(--color-text-sec);font-variant-numeric:tabular-nums}.dd__chevron{flex-shrink:0;color:var(--color-text-muted);margin-left:auto}.dd__list{box-sizing:border-box;overflow-y:auto;padding:4px;border:1.5px solid var(--color-border-light);border-radius:10px;background:var(--color-bg-white);box-shadow:var(--shadow-overlay)}.dd__item{display:flex;align-items:center;justify-content:space-between;gap:20px;height:34px;padding:0 10px;border-radius:6px;font-size:13px;color:var(--color-text-main);cursor:pointer;white-space:nowrap}.dd__item.is-active{background:var(--color-bg-neutral)}.dd__item.is-selected{background:var(--color-primary-light);color:var(--color-primary-700)}.dd__item.is-selected .dd__meta{color:inherit}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.guide{display:flex;gap:8px;padding:10px 12px;border-radius:10px;background:var(--color-primary-light);color:var(--color-text-main);font-size:12px;line-height:1.55}.guide__icon{flex-shrink:0;margin-top:2px;color:var(--color-primary-700)}.guide__body{min-width:0;word-break:keep-all}.guide__title{display:block;margin-bottom:2px;font-size:13px;font-weight:700;color:var(--color-primary-700)}.guide__text{margin:0}.guide__steps{margin:0;padding-left:16px}.guide b{font-weight:700}.ctx{position:fixed;z-index:1000;min-width:184px;box-sizing:border-box;padding:4px;border:1.5px solid var(--color-border-light);border-radius:10px;background:var(--color-bg-white);box-shadow:var(--shadow-overlay);font-family:var(--font-kor)}.ctx__title{padding:6px 10px 4px;font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--color-text-sec)}.ctx__item{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;height:34px;padding:0 10px;border:0;border-radius:6px;background:transparent;font:inherit;font-size:13px;color:var(--color-text-main);text-align:left;white-space:nowrap;cursor:pointer}.ctx__item:hover:not(:disabled),.ctx__item:focus-visible{background:var(--color-bg-neutral);outline:none}.ctx__item:disabled{color:var(--color-text-disabled);cursor:not-allowed}.ctx__item.is-danger:not(:disabled){color:var(--color-danger-soft-text)}.ctx__hint{font-size:11px;color:var(--color-text-gray)}.ctx__sep{height:1px;margin:4px 6px;background:var(--color-divider)}.fc-stack{position:absolute;left:16px;top:16px;z-index:5;max-width:calc(100% - 32px);display:flex;flex-direction:column;align-items:flex-start;gap:8px}.fc-stack .fc-float,.fc-stack .toast{position:static;transform:none;max-width:100%;box-sizing:border-box}.fc-stack .toast{animation-name:toast-drop}@keyframes toast-drop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toast-fixed{position:fixed;bottom:100px;left:50%;z-index:1000;transform:translate(-50%);max-width:calc(100vw - 32px)}.toast-fixed .toast{position:static;transform:none;max-width:100%;box-sizing:border-box;animation-name:toast-rise}@keyframes toast-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast{position:absolute;top:16px;left:50%;z-index:5;max-width:calc(100% - 32px);display:flex;align-items:center;gap:10px;padding:8px 8px 8px 10px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-white);box-shadow:var(--shadow-overlay);font-size:13px;font-weight:600;color:var(--color-text-main);transform:translate(-50%);animation:toast-in .18s ease-out}.toast__icon{width:24px;height:24px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center}.toast--success .toast__icon{background:var(--color-success-soft-bg);color:var(--color-success-soft-text)}.toast--error .toast__icon{background:var(--color-danger-soft-bg);color:var(--color-danger-soft-text)}.toast--info .toast__icon{background:var(--color-info-soft-bg);color:var(--color-info-soft-text)}.toast__text{min-width:0;word-break:keep-all;line-height:1.5}.toast__close{width:24px;height:24px;flex-shrink:0}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.toast,.toast-fixed .toast{animation:none}}.save-bar{position:sticky;bottom:16px;z-index:4;display:flex;align-items:center;gap:8px;padding:10px 12px 10px 16px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-card);box-shadow:var(--shadow-overlay)}.save-bar.is-dirty{border-color:var(--color-warning-solid)}.save-bar__text{flex-grow:1;font-size:13px;font-weight:600;color:var(--color-text-sec)}.save-bar.is-dirty .save-bar__text{color:var(--color-warning-soft-text)}.panel-tab{position:absolute;top:50%;z-index:3;width:20px;height:56px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--color-border-light);background:var(--color-bg-card);color:var(--color-text-sec);cursor:pointer;transform:translateY(-50%);box-shadow:var(--shadow-card)}.panel-tab:hover{color:var(--color-primary-600)}.panel-tab--left{left:6px}.panel-tab--right{right:22px}@media (min-width: 1101px){.editor__body.left-collapsed .editor__left,.editor__body.right-collapsed .editor__right{display:none}}@media (max-width: 1100px){.panel-tab{display:none}}.editor__sel{max-width:420px;overflow:hidden;text-overflow:ellipsis;padding:3px 10px;border-radius:9999px;background:var(--color-primary-light);color:var(--color-primary-700);font-weight:600}.sel-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sel-stat{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--color-border-light);border-radius:10px;background:var(--color-bg-subtle)}.sel-stat i{width:12px;height:12px;flex-shrink:0;border-radius:4px;box-sizing:border-box}.sel-stat__label{flex-grow:1;font-size:12px;color:var(--color-text-sec)}.sel-stat__num{font-family:var(--font-display);font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.sel-stat.is-zero{opacity:.55}.dd--medium .dd__btn{height:40px;padding:0 12px 0 14px;font-size:14px}.dd--medium .dd__item{height:38px;font-size:14px}.dd--medium .dd__meta{font-size:13px}.dd--fixed{display:block}.dd--fixed .dd__btn{width:100%}.dd--fixed .dd__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.dd__meta{flex-shrink:0}.dd__text{min-width:0;display:flex;flex-direction:column}.dd__item .dd__label{overflow:hidden;text-overflow:ellipsis}.dd__item.has-detail,.dd--medium .dd__item.has-detail{height:auto;min-height:34px;padding-top:5px;padding-bottom:5px}.dd__detail{font-size:11px;color:var(--color-text-sec);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dd__item.is-selected .dd__detail{color:inherit}.dd__search{position:sticky;top:-4px;z-index:1;margin:-4px -4px 4px;padding:8px;background:var(--color-bg-white);border-bottom:1px solid var(--color-divider)}.dd__search input{width:100%;height:32px;box-sizing:border-box;padding:0 10px;border:1.5px solid var(--color-border-light);border-radius:8px;background:var(--color-bg-white);color:var(--color-text-main);font-family:var(--font-kor);font-size:13px;outline:none}.dd__search input:focus{border-color:var(--color-primary-600);box-shadow:var(--shadow-focus)}.dd__empty{padding:14px 10px;text-align:center;font-size:13px;color:var(--color-text-sec)}.zoom--float{position:absolute;top:12px;right:28px;z-index:2;box-shadow:var(--shadow-card)}.request-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:1000;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .2s}.request-progress.is-active{opacity:1}.request-progress:before{content:"";position:absolute;inset:0 auto 0 0;width:35%;background:var(--color-primary);border-radius:0 3px 3px 0;animation:request-progress-run 1.1s ease-in-out infinite}@keyframes request-progress-run{0%{transform:translate(-100%)}to{transform:translate(300%)}}.spinner{display:inline-block;flex-shrink:0;box-sizing:border-box;border:2px solid var(--color-border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spinner-turn .7s linear infinite}@keyframes spinner-turn{to{transform:rotate(360deg)}}.loading-block{display:flex;align-items:center;justify-content:center;gap:10px;padding:32px 16px;color:var(--color-text-sec);font-size:14px}.skel{display:block;flex-shrink:0;max-width:100%;border-radius:8px;background:var(--color-bg-neutral);animation:skel-pulse 1.4s ease-in-out infinite}.skel.is-still{animation:none;opacity:.6}@keyframes skel-pulse{50%{opacity:.45}}.resv__loading{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--color-text-sec)}.loading-block--fill{min-height:240px}.is-refreshing{opacity:.55;transition:opacity .15s}@media (prefers-reduced-motion: reduce){.spinner,.request-progress:before{animation-duration:2.4s}}@media (prefers-reduced-motion: reduce){.skel{animation:none}}.ui-tabs__item{transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.ui-tabs--underline .ui-tabs__item:after{transition:background-color .15s ease}@media (prefers-reduced-motion: reduce){.ui-tabs__item,.ui-tabs--underline .ui-tabs__item:after{transition:none}}.fc-cell.is-upcoming{background:var(--cell-empty-bg);border:1px dashed var(--color-primary-500);color:var(--color-primary-600)}.fc-cell.has-next:before{content:"";position:absolute;top:3px;left:3px;width:6px;height:6px;border-radius:50%;border:1.5px solid var(--color-primary-500);box-sizing:border-box}
