:root{--pink-50: #fdeef3;--pink-100: #fbd9e4;--pink-200: #f7b4cb;--pink-300: #f286ac;--pink-500: #ec4b7e;--pink-600: #da2e66;--blue-50: #ecedfb;--blue-500: #3d43db;--blue-600: #2e33c2;--cyan-50: #e2f3f8;--cyan-600: #0b7290;--brown-50: #f4ebe2;--brown-600: #8a5426;--violet-50: #f3ebfd;--violet-500: #7c3aed;--violet-600: #6d28d9;--gray-white: #ffffff;--gray-paper: #f7f8f9;--gray-50: #f2f4f5;--gray-100: #e8eaec;--gray-200: #d6d9dd;--gray-300: #b9bdc4;--gray-400: #8e939b;--gray-500: #686d75;--gray-600: #494d54;--gray-700: #2f3238;--gray-800: #1e2024;--gray-900: #121316;--gray-black: #0a0b0d;--success-500: #1f9d5b;--success-50: #e7f6ee;--warning-500: #e8a317;--warning-50: #fcf3de;--danger-500: #da2e66;--danger-50: #fdeef3;--info-500: #3d43db;--info-50: #ecedfb;--text-strong: var(--gray-900);--text-body: var(--gray-700);--text-muted: var(--gray-500);--text-faint: var(--gray-400);--text-accent: var(--gray-900);--text-blue: var(--blue-600);--text-on-accent: #ffffff;--text-on-dark: #ffffff;--surface-page: #ffffff;--surface-paper: var(--gray-paper);--surface-card: #ffffff;--surface-sunk: var(--gray-50);--surface-hover: var(--gray-50);--surface-ink: var(--gray-900);--surface-disabled: var(--gray-100);--border-subtle: var(--gray-100);--border-default: var(--gray-200);--border-input: var(--gray-300);--border-strong: var(--gray-900);--accent: var(--gray-900);--accent-hover: var(--gray-black);--accent-soft: var(--gray-50);--focus-ring: var(--gray-900);--brand-pink: var(--pink-500);--brand-pink-soft: var(--pink-50);--topbar-bg: #222327;--sidebar-w: 232px;--topbar-h: 48px;--content-pad: 24px;--control-h: 32px;--control-h-sm: 26px;--row-h: 34px;--head-h: 32px;--radius: 0px;--font-sans: "Pretendard", "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Malgun Gothic", sans-serif;--font-mono: "IBM Plex Mono", "D2Coding", Consolas, monospace}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface-paper);color:var(--text-body);font-family:var(--font-sans);font-size:14px;line-height:20px;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure{margin:0}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}table{border-collapse:collapse;width:100%}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.t-display{font-size:38px;line-height:44px;font-weight:700;letter-spacing:-.025em}.t-h1{font-size:30px;line-height:36px;font-weight:700;letter-spacing:-.025em}.t-h2{font-size:24px;line-height:30px;font-weight:700;letter-spacing:-.01em}.t-h3{font-size:20px;line-height:26px;font-weight:700;letter-spacing:-.01em}.t-title{font-size:18px;line-height:24px;font-weight:700;letter-spacing:-.01em}.t-body-lg{font-size:16px;line-height:24px}.t-body{font-size:14px;line-height:20px}.t-body-md{font-size:14px;line-height:20px;font-weight:500}.t-sm{font-size:13px;line-height:18px}.t-sm-md{font-size:13px;line-height:18px;font-weight:500}.t-caption{font-size:12px;line-height:16px}.t-micro{font-size:11px;line-height:14px;font-weight:500}.t-eyebrow{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.mono{font-family:var(--font-mono);font-size:13px;line-height:18px}.mono-md{font-family:var(--font-mono);font-size:13px;line-height:18px;font-weight:500}.mono-lg{font-family:var(--font-mono);font-size:20px;line-height:26px;font-weight:500}.c-strong{color:var(--text-strong)}.c-body{color:var(--text-body)}.c-muted{color:var(--text-muted)}.c-faint{color:var(--text-faint)}.c-danger{color:var(--danger-500)}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column}.grow{flex:1 1 auto;min-width:0}.right{margin-left:auto}.num{font-family:var(--font-mono);text-align:right}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--control-h);padding:0 14px;border:1px solid transparent;border-radius:var(--radius);font-size:14px;font-weight:500;line-height:20px;white-space:nowrap}.btn--sm{height:var(--control-h-sm);padding:0 10px;font-size:13px}.btn--primary{background:var(--accent);color:var(--text-on-accent)}.btn--primary:hover{background:var(--accent-hover)}.btn--secondary{background:var(--surface-card);border-color:var(--border-input);color:var(--text-body)}.btn--secondary:hover{background:var(--surface-hover)}.btn--ghost{background:transparent;color:var(--text-muted)}.btn--ghost:hover{background:var(--surface-hover);color:var(--text-body)}.btn--danger{background:var(--surface-card);border-color:var(--danger-500);color:var(--danger-500)}.btn--danger:hover{background:var(--danger-50)}.btn:disabled{background:var(--surface-disabled);color:var(--text-faint);cursor:not-allowed}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);color:var(--text-muted)}.icon-btn:hover{background:var(--surface-hover);color:var(--text-strong)}.icon-btn:disabled{background:var(--surface-disabled);color:var(--text-faint);cursor:not-allowed}.icon-btn:disabled:hover{background:var(--surface-disabled);color:var(--text-faint)}.icon-btn--sm{width:22px;height:22px}.icon-btn--plain{border-color:transparent;background:transparent}.field{display:flex;align-items:center;gap:8px;width:100%;height:var(--control-h);padding:0 12px;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);color:var(--text-strong);font-size:14px}.field::placeholder{color:var(--text-faint)}.field:focus{outline:none;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.field:disabled,.field[readonly]{background:var(--surface-sunk);color:var(--text-muted)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23686d75' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.select--muted{color:var(--text-faint)}.form-label{display:block;margin-bottom:7px;color:var(--text-muted);font-size:12px;line-height:16px}.form-hint{margin-top:7px;color:var(--text-faint);font-size:12px;line-height:16px}.form-row{display:flex;gap:12px}.form-row>*{flex:1 1 0;min-width:0}.checkbox{display:inline-flex;align-items:center;gap:8px}.checkbox input{position:absolute;opacity:0;width:0;height:0}.checkbox .box{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);color:transparent}.checkbox input:checked+.box{background:var(--accent);border-color:var(--accent);color:#fff}.checkbox input:focus-visible+.box{outline:2px solid var(--focus-ring);outline-offset:1px}.checkbox--check input+.box{background:var(--danger-50);border-color:#e08199;color:transparent}.checkbox--check input:checked+.box{background:#dcf0e4;border-color:var(--success-500);color:var(--success-500)}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:1px 8px;border-radius:var(--radius);font-size:12px;line-height:16px;font-weight:500;white-space:nowrap}.badge--fixed{width:64px;flex:none}.badge--neutral{background:var(--gray-100);color:var(--gray-700)}.badge--pink{background:var(--pink-50);color:var(--pink-600)}.badge--violet{background:var(--violet-50);color:var(--violet-600)}.badge--blue{background:var(--blue-50);color:var(--blue-600)}.badge--cyan{background:var(--cyan-50);color:var(--cyan-600)}.badge--brown{background:var(--brown-50);color:var(--brown-600)}.badge--outline{background:transparent;border:1px dashed var(--border-default);color:var(--text-muted)}.badge--success{background:var(--success-50);color:var(--success-500)}.badge--warning{background:var(--warning-50);color:var(--warning-500)}.badge--danger{background:var(--danger-50);color:var(--danger-500)}.badge--solid{background:var(--gray-900);color:#fff}.badge--dark{background:var(--gray-500);color:#fff}.chip{display:inline-flex;align-items:center;gap:8px;height:var(--control-h);padding:0 10px 0 12px;background:var(--surface-sunk);border:1px solid var(--border-subtle);border-radius:var(--radius);font-size:13px}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip--tag{height:24px;padding:0 6px 0 10px;background:var(--surface-card);border-color:var(--border-input)}.field-pair{display:flex;gap:10px}.field-pair>*{flex:1 1 0;min-width:0}.filter-split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.filter-split__col{display:flex;flex-direction:column;gap:18px;min-width:0}.filter-split__head{display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle);font-size:13px;font-weight:600;color:var(--text-strong)}.filter-split__head .dot{width:8px;height:8px;border-radius:50%}.filter-split__head .dot--a{background:var(--brand-pink)}.filter-split__head .dot--b{background:var(--info-500)}.table-split{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 1360px){.table-split{grid-template-columns:1fr}}.table-split__pane{display:flex;flex-direction:column;gap:3px;min-width:0;min-height:0}.table-split__head{display:flex;align-items:center;height:15px}.table-split__head .n{font-family:var(--font-mono);color:var(--text-muted);font-size:11px;line-height:15px}.chip--sm{height:22px;gap:5px;padding:0 6px 0 8px;font-size:12px}.chip--sm .k{font-size:11px}.chip .k{color:var(--text-muted);font-size:12px}.chip .v{color:var(--text-strong);font-weight:500}.chip button{display:inline-flex;padding:0;background:none;border:0;color:var(--text-faint)}.chip button:hover{color:var(--text-strong)}.shell{display:flex;height:100vh;overflow:hidden;background:var(--surface-card)}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--surface-card);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column}.sidebar__system{height:var(--topbar-h);display:flex;align-items:center;padding:0 12px;border-bottom:1px solid var(--border-subtle)}.system-picker{display:flex;align-items:center;gap:8px;width:100%;height:34px;padding:0 10px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius)}.system-picker .logo{height:13px;width:auto;display:block}.system-picker-wrap{position:relative;width:100%}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.system-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:45;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);box-shadow:0 8px 24px #00000029;padding:6px 0}.system-menu__item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 14px;text-align:left}.system-menu__item b{font-size:13px;font-weight:500;color:var(--text-strong)}.system-menu__item:disabled{cursor:not-allowed}.system-menu__item:disabled b{color:var(--text-faint)}.system-menu__item:not(:disabled):hover{background:var(--surface-hover)}.system-menu__item.is-current{background:var(--accent-soft)}.system-picker .divider{width:1px;height:14px;background:var(--border-default)}.system-picker .name{font-size:13px;font-weight:500;color:var(--text-strong)}.nav{padding:12px 0 20px;overflow-y:auto}.nav__group{padding:14px 22px 6px;color:var(--text-faint);font-size:11px;font-weight:500}.nav__item{display:flex;align-items:center;gap:12px;height:38px;padding:0 22px;border-left:3px solid transparent;color:var(--text-muted);font-size:14px}.nav__item:hover{background:var(--surface-hover);color:var(--text-body)}.nav__item.is-active{background:var(--accent-soft);border-left-color:var(--accent);color:var(--text-strong);font-weight:500}.main{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.topbar{height:var(--topbar-h);flex:0 0 var(--topbar-h);display:flex;align-items:center;gap:14px;padding:0 24px;background:var(--topbar-bg);color:var(--text-on-dark)}.topbar__title{display:flex;align-items:center;font-size:15px;font-weight:500}.topbar__link{color:#ffffffad}.topbar__link:hover{color:#fff;text-decoration:underline}.topbar__sep{margin:0 8px;color:#fff6}.form-label-row{display:flex;align-items:center;gap:8px;height:16px;margin-bottom:7px}.form-label-row .form-label{margin-bottom:0}.form-label__manage{margin-left:auto;flex:none;border:0;background:none;padding:0;color:var(--text-faint);font-size:12px;line-height:16px;cursor:pointer}.form-label__manage:hover{color:var(--text-accent);text-decoration:underline}.field-values{margin:6px 0 0 12px;padding-left:10px;border-left:2px solid var(--border-subtle)}.field-values .form-label{color:var(--text-faint)}.manage-list{max-height:260px;overflow-y:auto;border:1px solid var(--border-subtle)}.manage-list__row{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:13px;border-bottom:1px solid var(--border-subtle)}.manage-list__row:last-child{border-bottom:0}.manage-list__row:hover{background:var(--surface-paper)}.presence{display:flex;align-items:center;gap:8px;margin-right:14px}.presence__stack{display:flex}.presence__stack .avatar{margin-left:-6px;border:1.5px solid var(--surface-ink)}.presence__stack .avatar:first-child{margin-left:0}.presence__stack .avatar.is-here{border-color:var(--brand-pink)}.presence__text{color:#ffffffad;font-size:12px;white-space:nowrap}.cell-user{display:flex;align-items:center;gap:8px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:var(--brand-pink);color:#fff;font-size:13px;font-weight:500;border:0}.avatar--sm{width:24px;height:24px;font-size:11px;flex:0 0 auto}.avatar--muted{background:var(--gray-300)}.content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:12px;padding:16px var(--content-pad) var(--content-pad);background:var(--surface-card);overflow:auto}.tabs{display:flex;align-items:center;gap:4px;height:34px}.tabs__list{display:flex;align-items:center;gap:4px;height:34px;border-bottom:1px solid var(--border-subtle)}.tab{display:inline-flex;align-items:center;height:34px;padding:0 14px;background:none;border:0;border-bottom:2px solid transparent;color:var(--text-muted);font-size:14px}.tab:hover{color:var(--text-body)}.tab.is-active{border-bottom-color:var(--accent);color:var(--text-strong);font-weight:500}.filterbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.filterbar__label{color:var(--text-muted);font-size:13px;font-weight:500}.filter-btn{display:inline-flex;align-items:center;gap:8px;height:var(--control-h);padding:0 14px;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);color:var(--text-strong);font-size:13px;font-weight:500}.filter-btn .count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-family:var(--font-mono);font-size:12px}.link-btn{background:none;border:0;padding:0;color:var(--text-muted);font-size:13px}.link-btn:hover{color:var(--text-strong)}.card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius)}.panel{display:flex;flex-direction:column}.panel__head{display:flex;align-items:center;gap:8px;min-height:32px;margin-bottom:8px}.panel__title{font-size:18px;font-weight:700;color:var(--text-strong);letter-spacing:-.01em}.panel__head .right{display:inline-flex;align-items:center;gap:8px}.tally{display:flex;align-items:center;gap:16px}.tally__item{display:inline-flex;align-items:center;gap:7px}.tally__item b{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--text-strong)}.tally--row{padding:0;margin:-6px 0}.tally__actions{display:inline-flex;align-items:center;gap:10px}.tally__total{color:var(--text-muted);font-size:13px}.tally__total b{font-family:var(--font-mono);font-size:15px;font-weight:500;color:var(--text-strong)}.viewer{position:relative;height:480px;background:var(--surface-sunk);border:1px solid var(--border-subtle);border-radius:var(--radius);overflow:hidden}.viewer canvas{display:block}.viewer img{width:100%;height:100%;object-fit:contain}.viewer iframe{width:100%;height:100%;border:0}.viewer__text{margin:0;padding:14px 16px;height:100%;overflow:auto;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--text-body);-moz-tab-size:4;tab-size:4}.viewer-info{display:flex;align-items:center;gap:14px;padding-top:8px;font-size:12px;color:var(--text-muted)}.viewer-info b{font-family:var(--font-mono);font-weight:500;color:var(--text-body)}.graph{position:relative;flex:1 1 auto;min-height:460px;background:var(--surface-sunk);border:1px solid var(--border-subtle);border-radius:var(--radius);overflow:hidden}.graph canvas{display:block}.graph__tip{position:absolute;transform:translate(14px,-100%);display:flex;flex-direction:column;gap:2px;padding:6px 10px;background:var(--surface-ink);color:var(--text-on-dark);font-size:12px;line-height:1.4;white-space:nowrap;pointer-events:none}.graph__tip b{font-family:var(--font-mono);font-size:13px}.graph__tip span{color:#ffffffb3}.legend{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;justify-content:flex-end}.legend__item{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted)}.legend__item i{width:9px;height:9px;border-radius:50%;flex:none}.legend__item b{font-family:var(--font-mono);font-weight:500;color:var(--text-body)}.segmented{display:inline-flex;align-items:center;gap:2px;height:var(--control-h);padding:3px;background:var(--gray-100);border:1px solid var(--border-default);border-radius:var(--radius)}.segmented>button{height:100%;padding:0 12px;border:0;border-radius:var(--radius);background:transparent;color:var(--text-faint);font-size:13px;font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .18s ease,color .18s ease}.segmented>button:hover{color:var(--text-body)}.segmented>button.is-on{background:var(--surface-card);color:var(--text-strong)}.segmented>button:focus-visible{outline:2px solid var(--text-strong);outline-offset:-2px}@media (prefers-reduced-motion: reduce){.segmented>button{transition:none}}.pager{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.table--foot tfoot td{position:sticky;bottom:0;z-index:2;height:var(--row-h);padding:0 12px;background:var(--surface-sunk);border-top:1px solid var(--border-default);border-bottom:0}.pager .btn{min-width:34px}.pager .icon-btn{width:var(--control-h-sm);height:var(--control-h-sm)}.pager>.t-sm{margin-left:10px}.btn.is-on{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.btn.is-on:hover{background:var(--accent-hover);color:var(--text-on-accent)}.stat-row{display:flex;gap:12px}.stat{flex:1 1 0;min-width:0;padding:12px 18px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius)}.stat__label{color:var(--text-muted);font-size:12px;line-height:16px}.stat__value{color:var(--text-strong);font-family:var(--font-mono);font-size:20px;font-weight:500}.stat__value small{font-family:var(--font-sans);font-size:12px;font-weight:400;color:var(--text-muted)}.stat__sub{color:var(--text-faint);font-size:11px;line-height:14px}.stat.is-warning{border-color:var(--warning-500);background:#fdf9ef}.stat.is-danger{border-color:var(--danger-500);background:#fef7f9}.table-wrap{flex:1 1 auto;min-height:0;overflow:auto;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius)}.table{table-layout:fixed}.table th{position:sticky;top:0;z-index:1;height:var(--head-h);padding:0 12px;background:var(--surface-sunk);border-bottom:1px solid var(--border-subtle);color:var(--text-muted);font-size:12px;font-weight:400;text-align:left;white-space:nowrap}.table td{height:var(--row-h);padding:0 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-body);font-size:13px;vertical-align:middle;overflow-wrap:anywhere}.table tbody tr:hover td{background:var(--surface-hover)}.table--sticky th.col-fix,.table--sticky td.col-fix{position:sticky;z-index:2;background:var(--surface-card)}.table--sticky thead th.col-fix{z-index:3;background:var(--surface-sunk)}.table--sticky tfoot td.col-fix{background:var(--surface-sunk)}.table th.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.th-sort:hover{color:var(--text-strong)}.table th.th-sort svg{vertical-align:-2px;margin-left:4px}.table--sticky tbody tr:hover td.col-fix{background:var(--surface-hover)}.table--sticky .col-fix--last{box-shadow:inset -1px 0 0 var(--border-default),8px 0 8px -6px #12131629}.table--sticky .col-fix--right{box-shadow:inset 1px 0 0 var(--border-default),-8px 0 8px -6px #12131629}.table .cell-strong{color:var(--text-strong);font-weight:500}.table .cell-mono{font-family:var(--font-mono)}.table .cell-num{font-family:var(--font-mono);text-align:right}.table .cell-center{text-align:center}.table .cell-nowrap{white-space:nowrap}.table .cell-note{max-height:60px;overflow-y:auto;line-height:20px;white-space:normal;overscroll-behavior:contain}.table .cell-note::-webkit-scrollbar{width:6px}.table .cell-note::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:3px}.table .cell-actions{text-align:right;white-space:nowrap;padding-left:10px;padding-right:12px}.table .cell-actions>*,.table .cell-order>*{vertical-align:middle}.table .cell-order{padding:0 8px;white-space:nowrap}.table .cell-order .icon-btn+.icon-btn{margin-left:4px}.table .cell-actions .icon-btn+.icon-btn{margin-left:6px}.table tfoot td{position:sticky;bottom:0;z-index:3;background:var(--surface-sunk);box-shadow:0 -1px 0 var(--border-subtle);font-weight:500;color:var(--text-strong)}.table--sticky tfoot td.col-fix{z-index:4}.policy{display:flex;flex-direction:column;gap:4px;max-height:48vh;overflow:auto}.policy h3{margin-top:12px;color:var(--text-strong);font-size:13px;font-weight:500}.policy h3:first-child{margin-top:0}.policy p{color:var(--text-body);font-size:13px;line-height:20px}.pw-rules{display:flex;flex-direction:column;gap:5px;margin-top:-4px}.pw-rules li{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px}.pw-rules li svg{color:var(--danger-500)}.pw-rules li.is-ok svg{color:var(--success-500)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:64px 0;color:var(--text-muted)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#12131673;display:flex;align-items:center;justify-content:center;z-index:50}.modal{width:560px;max-width:calc(100vw - 48px);max-height:calc(100vh - 80px);display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 12px 32px #0000002e}.modal--sm{width:440px}.modal--lg{width:980px}.modal__head{display:flex;align-items:center;gap:8px;padding:22px 26px;border-bottom:1px solid var(--border-subtle)}.modal__title{flex:1 1 auto;font-size:18px;font-weight:700;color:var(--text-strong)}.modal__body{padding:26px;overflow:auto;display:flex;flex-direction:column;gap:18px}.modal__foot{display:flex;align-items:center;gap:8px;padding:18px 26px;background:var(--surface-sunk);border-top:1px solid var(--border-subtle)}.modal__foot .right{margin-left:auto;display:flex;gap:8px}.info-box{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--surface-sunk);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-body);font-size:13px}.info-box.info-box--text{display:block;line-height:1.6}.info-box.info-box--text b{color:var(--text-strong);font-weight:500}.info-box.info-box--list{flex-direction:column;align-items:stretch;text-align:left;gap:6px}.info-box.info-box--list b{color:var(--text-strong);font-weight:500}.popover{position:absolute;top:calc(var(--topbar-h) + 8px);right:24px;width:260px;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);box-shadow:0 8px 24px #00000029;z-index:60}.popover__head{padding:14px 16px;border-bottom:1px solid var(--border-subtle)}.popover__list{padding:6px 0}.popover__item{display:block;width:100%;padding:9px 16px;background:none;border:0;text-align:left;font-size:13px;color:var(--text-body)}.popover__item:hover{background:var(--surface-hover)}.pickbox{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);box-shadow:0 6px 18px #0000001f}.pickbox__head{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-sunk);border-bottom:1px solid var(--border-subtle)}.pickbox__head .link-btn:first-of-type{margin-left:auto}.pickbox__head .link-btn+.link-btn{margin-left:10px}.pickbox__list{max-height:168px;overflow-y:auto}.pickbox__item{display:flex;align-items:center;gap:10px;width:100%;height:30px;padding:0 10px;background:transparent;border:0;text-align:left}.pickbox__item:hover,.pickbox__item.is-on{background:var(--surface-hover)}.pickbox__item .box{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:none;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);color:transparent;font-size:11px;line-height:1}.pickbox__item .box.is-on{background:var(--accent);border-color:var(--accent);color:#fff}.pickbox__item .t-caption{margin-left:auto}.pickbox__empty{padding:14px 10px;text-align:center}.dropdown{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius);box-shadow:0 6px 18px #0000001f;max-height:200px;overflow:auto;z-index:5}.dropdown__item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;background:none;border:0;border-bottom:1px solid var(--border-subtle);text-align:left}.dropdown__item:last-child{border-bottom:0}.dropdown__item:hover{background:var(--accent-soft)}.auth{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:flex-end;padding:0 8vw;overflow:hidden;background:#17181b}.auth:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/pinky-wall.jpg) center / cover no-repeat;filter:brightness(1.28) contrast(.96)}.auth:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0b0d2e}.auth__card{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;width:520px;min-height:550px;max-width:100%;padding:48px 44px;background:var(--surface-card);border-radius:var(--radius)}.auth__logo{display:flex;align-items:center}.auth__logo img{height:30px;width:auto;display:block}.auth__desc{margin-top:18px;color:var(--text-muted);font-size:16px}.auth__form{margin-top:32px;display:flex;flex-direction:column;gap:16px}.auth__foot{margin-top:26px;display:flex;align-items:center;gap:6px;font-size:15px}.systems{min-height:100vh;background:var(--surface-paper)}.systems__inner{max-width:1400px;margin:0 auto;padding:96px 40px}.systems__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}.system-card{display:flex;flex-direction:column;min-height:480px;padding:36px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius);text-align:left}.system-card:hover{border-color:var(--border-strong)}.system-card.is-disabled{background:var(--surface-sunk);color:var(--text-faint);cursor:not-allowed}.system-card.is-disabled:hover{border-color:var(--border-subtle)}.system-card__abbr{color:var(--text-muted)}.system-card__name{margin-top:10px;font-size:34px;font-weight:700;letter-spacing:-.02em;color:var(--text-strong)}.system-card.is-disabled .system-card__name{color:var(--text-faint)}.system-card__desc{margin-top:14px;color:var(--text-muted);font-size:14px;line-height:22px}.system-card__keys{margin-top:18px;display:flex;flex-direction:column;gap:8px}.system-card__keys span{padding:13px 14px;background:var(--surface-card);border:1px solid var(--border-subtle);font-size:13px}.system-card__foot{margin-top:auto;display:flex;align-items:center}.errorpage{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;text-align:center}.errorpage__code{font-family:var(--font-mono);font-size:96px;font-weight:500;letter-spacing:-2px;color:var(--text-faint)}.errorpage__rule{width:40px;height:2px;margin:10px 0 22px;background:var(--accent)}.errorpage__title{font-size:24px;font-weight:700;color:var(--text-strong)}.errorpage__desc{margin-top:10px;max-width:560px;color:var(--text-muted)}.errorpage__meta{margin-top:22px}.errorpage__actions{margin-top:30px;display:flex;gap:8px}.errorpage__hint{margin-top:20px;color:var(--text-faint);font-size:12px}.detail{display:flex;gap:12px;flex:1 1 auto;min-height:0}.detail__left{flex:1 1 auto;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;overflow:auto}.detail__right{width:596px;flex:0 0 596px;display:flex;flex-direction:column}.pane{border:1px solid var(--border-default);background:var(--surface-card)}.pane__head{display:flex;align-items:center;gap:8px;height:50px;padding:0 22px;background:var(--surface-sunk);border-bottom:1px solid var(--border-subtle)}.pane__head h3{flex:1 1 auto;font-size:14px;font-weight:500;color:var(--text-strong)}.pane__body{padding:18px 22px}.kv{display:grid;grid-template-columns:90px 1fr 90px 1fr;gap:12px 16px}.kv dt{color:var(--text-muted);font-size:13px}.kv dd{margin:0;color:var(--text-strong);font-size:13px}.opt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.opt{padding:12px 14px;background:var(--surface-sunk);border:1px solid var(--border-subtle)}.opt dt{color:var(--text-muted);font-size:11px}.opt dd{margin:3px 0 0;color:var(--text-strong);font-size:14px;font-weight:500}.checklist{display:flex;flex-wrap:wrap;gap:8px}.checklist span{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border-subtle);font-size:12px;color:var(--text-body)}.checklist span.is-fail{border-color:var(--danger-500);color:var(--danger-500)}.hist-list{flex:1 1 auto;min-height:0;overflow:auto}.hist-item{display:flex;align-items:center;gap:10px;padding:12px 22px;border-bottom:1px solid #f1f3f4}.hist-item:last-child{border-bottom:0}.hist-item .date{font-family:var(--font-mono);font-size:13px;color:var(--text-muted);white-space:nowrap}.hist-item .desc{flex:1 1 auto;min-width:0;font-size:13px;color:var(--text-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hist-item .who{font-size:12px;color:var(--text-muted);white-space:nowrap}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.product-card{padding:20px 22px}.product-card.is-link{cursor:pointer}.product-card.is-link:hover{border-color:var(--border-default);background:var(--surface-paper)}.product-card.is-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.product-card--new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:120px;border:1px dashed var(--border-input);background:transparent;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer}.product-card--new:hover{border-color:var(--text-body);color:var(--text-strong);background:var(--surface-hover)}.product-card--new:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.product-card__edit,.product-card__del{margin-left:8px;border-color:transparent;background:transparent;opacity:0}.product-card:hover .product-card__edit,.product-card:hover .product-card__del{opacity:1}.product-card__del:disabled{display:none}.product-card__head{display:flex;align-items:baseline}.product-card__name{font-size:16px;font-weight:700;color:var(--text-strong)}.product-card__prefix{margin-left:auto;padding:2px 8px;background:var(--surface-sunk);color:var(--text-muted);font-family:var(--font-mono);font-size:11px}.product-card__total{margin-top:10px;display:flex;align-items:baseline;gap:4px}.product-card__total b{font-family:var(--font-mono);font-size:26px;font-weight:500;color:var(--text-strong)}.product-card__total span{color:var(--text-muted);font-size:12px}.product-card__stats{margin-top:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px}.product-card__stats li{display:flex;align-items:center;gap:8px;font-size:12px}.product-card__stats b{font-family:var(--font-mono);font-weight:500;color:var(--text-body)}.content--pinned{overflow:hidden}.stock-scroll{flex:1 1 auto;min-height:0;overflow:auto}.avail{flex:none;display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 calc(var(--content-pad) * -1) calc(var(--content-pad) * -1);padding:12px var(--content-pad);background:var(--surface-card);border-top:1px solid var(--border-default);box-shadow:0 -6px 16px #0000000f}.avail__label{display:inline-flex;align-items:center;gap:5px;margin-right:4px;color:var(--text-body);font-size:13px;font-weight:600}.avail__label .badge{font-weight:500}.avail__hint{margin-left:auto;color:var(--text-faint);font-size:11px}.avail__item{display:inline-flex;align-items:baseline;gap:6px;height:28px;padding:0 11px;background:var(--surface-paper);border:1px solid var(--border-default);border-radius:var(--radius);color:var(--text-body);font-size:12px;cursor:pointer}.avail__item:hover{background:var(--gray-900);border-color:var(--gray-900);color:#fff}.avail__item:hover b,.avail__item:hover .unit{color:#fff}.avail__item b{font-family:var(--font-mono);font-size:15px;font-weight:500;color:var(--text-strong)}.avail__item .unit{color:var(--text-faint);font-size:11px}.product-card__stats b .of{color:var(--text-faint);font-weight:400}.cell-next{margin-left:8px;color:var(--text-faint);white-space:nowrap}.cell-next .on{font-family:var(--font-mono);font-size:11px}.product-card__plans{margin-top:7px;padding-top:7px;border-top:1px solid var(--border-subtle)}.product-card.is-empty{background:var(--surface-paper)}.product-card.is-empty .product-card__name{color:var(--text-faint)}.product-card.is-empty .product-card__total b{color:var(--gray-300);font-weight:400}.product-card__note{margin-top:10px;color:var(--text-faint);font-size:12px}.split{display:flex;gap:12px;flex:1 1 auto;min-height:0}.split__side{width:300px;flex:0 0 300px;display:flex;flex-direction:column;gap:10px}.split__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:10px}.side-list{flex:1 1 auto;border:1px solid var(--border-default);background:var(--surface-card)}.side-list button{display:flex;align-items:center;gap:8px;width:100%;padding:14px 18px;background:none;border:0;border-bottom:1px solid var(--border-subtle);border-left:3px solid transparent;text-align:left;font-size:13px;color:var(--text-body)}.side-list button:hover{background:var(--surface-hover)}.side-list button.is-active{border-left-color:var(--accent);background:var(--accent-soft);color:var(--text-strong);font-weight:500}.side-list button.is-empty{color:var(--text-faint)}.side-list .count{margin-left:auto;color:var(--text-faint);font-size:12px}.swatches{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}.swatch{width:28px;height:28px;border-radius:999px;border:0;padding:0;outline-offset:2px}.swatch.is-active{outline:2px solid var(--accent)}.btn,.icon-btn,.nav__item,.side-list button,.system-menu__item,.popover__item,.dropdown__item,.manage-list__row,.tab,.link-btn,.chip button,.topbar__link,.form-label__manage,.table th.th-sort,.system-card,.product-card{transition:background-color .15s ease,color .15s ease,border-color .15s ease}.table tbody td{transition:background-color .12s ease}.product-card__edit,.product-card__del{transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.btn,.icon-btn,.nav__item,.side-list button,.system-menu__item,.popover__item,.dropdown__item,.manage-list__row,.tab,.link-btn,.chip button,.topbar__link,.form-label__manage,.table th.th-sort,.system-card,.product-card,.table tbody td,.product-card__edit,.product-card__del{transition:none}}.upcoming{border:1px solid var(--border-default);background:var(--surface-card)}.upcoming__head{display:flex;align-items:center;gap:8px;width:100%;height:40px;padding:0 14px;background:var(--surface-sunk);border:0;border-bottom:1px solid var(--border-subtle);color:var(--text-body);font-size:13px;font-weight:500;text-align:left;cursor:pointer}.upcoming__head b{font-family:var(--font-mono);color:var(--text-strong)}.upcoming__head>.t-sm{margin-left:auto;font-weight:400}.upcoming__body{max-height:168px;overflow-y:auto}.upcoming__row{display:flex;align-items:center;gap:14px;padding:9px 14px;border-bottom:1px solid var(--border-subtle);font-size:13px}.upcoming__row:last-child{border-bottom:0}.upcoming__ids{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table tbody tr.row-link{cursor:pointer}.table tbody tr.row-link:hover td{background:var(--surface-hover)}.timeline{display:flex;flex-direction:column}.tl-day{position:relative;display:grid;grid-template-columns:190px 1fr;gap:16px;padding:16px 0 16px 20px;border-left:2px solid var(--border-default)}.tl-day:before{content:"";position:absolute;left:-6px;top:22px;width:10px;height:10px;border-radius:50%;background:var(--surface-card);border:2px solid var(--gray-400)}.tl-day.is-today{border-left-color:var(--accent)}.tl-day.is-today:before{background:var(--accent);border-color:var(--accent)}.tl-day__mark{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:4px}.tl-day__date{font-family:var(--font-mono);font-size:16px;font-weight:500;color:var(--text-strong)}.tl-day__week{color:var(--text-muted);font-size:13px}.tl-day__n{color:var(--text-muted);font-size:12px}.tl-day__moves{display:flex;flex-direction:column;gap:8px;min-width:0}.tl-move{display:flex;align-items:flex-start;gap:14px;padding:10px 14px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius);font-size:13px}.tl-move__path{display:inline-flex;align-items:center;gap:10px;flex:none}.tl-move__path .from{color:var(--text-muted)}.tl-move__path .to{color:var(--text-strong);font-weight:500}.tl-move__path .arrow{position:relative;width:28px;height:2px;background:var(--gray-300)}.tl-move__path .arrow:after{content:"";position:absolute;right:0;top:-3px;border-left:7px solid var(--gray-300);border-top:4px solid transparent;border-bottom:4px solid transparent}.tl-move__what{color:var(--text-body);flex:none}.tl-move__what b{font-family:var(--font-mono);color:var(--text-strong)}.tl-move__ids{flex:1 1 auto;min-width:0;color:var(--text-faint);font-size:12px;line-height:1.6;word-break:keep-all;overflow-wrap:break-word}.tl-move__owner{color:var(--text-muted);flex:none}@media (max-width: 900px){.tl-day{grid-template-columns:1fr;gap:8px}}.part-stock-head>.segmented,.part-stock-head>.right{flex-shrink:0}.part-stock-hint{min-width:0;color:var(--text-muted);font-size:12px;line-height:1.5}.new-robot-fields{display:flex;flex-direction:column;gap:18px;border:0;padding:0;margin:0;min-width:0}.new-robot-fields:disabled{pointer-events:none;opacity:.65}.new-robot-ids{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:1px solid var(--border-input);padding:5px 8px;min-height:32px;max-height:150px;overflow-y:auto}.new-robot-ids:focus-within{outline:1px solid var(--text-strong)}.new-robot-ids input{flex:1;min-width:200px;border:0;outline:0;background:transparent;color:inherit;font:inherit}.new-robot-id{display:inline-flex;align-items:center;gap:5px;max-width:100%;background:var(--surface-sunk);padding:2px 6px;font-family:var(--font-mono);font-size:12px}.new-robot-id>span{overflow-wrap:anywhere}.new-robot-id button{border:0;background:transparent;cursor:pointer;color:inherit;padding:0 3px}.asset-number-label{display:flex;align-items:center;gap:6px;margin-bottom:6px}.asset-number-label .form-label{margin:0}.asset-number-help{position:relative;display:inline-flex}.asset-number-help>button{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:1px solid currentColor;border-radius:50%;background:transparent;color:var(--text-muted);font-size:11px;cursor:help}.asset-number-help [role=tooltip]{position:absolute;z-index:10;top:100%;left:-60px;width:300px;max-width:70vw;padding:10px 12px;background:#222;color:#fff;font-size:12px;line-height:1.6;font-weight:400;visibility:hidden;opacity:0;box-shadow:0 2px 8px #0002}.asset-number-help:hover [role=tooltip],.asset-number-help:focus-within [role=tooltip]{visibility:visible;opacity:1}.asset-number-range{margin-top:-10px;padding:14px;border:1px solid var(--border-input);background:var(--surface-sunk)}
