@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";.sidebar{width:280px;height:100%;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden;position:relative;margin:0;border-radius:var(--radius-lg);background:var(--color-sidebar-bg);border:1px solid var(--color-border-default);box-shadow:var(--shadow-md);color:var(--color-text-primary);isolation:isolate}.sidebar--desktop.sidebar--closed{display:none}.sidebar__brand{display:flex;align-items:center;gap:12px;padding:18px 16px 16px;border-bottom:1px solid var(--color-border-soft);flex-shrink:0;background:transparent}.sidebar__brand-mark{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0}.sidebar__brand-mark img{width:44px;height:auto;display:block}.sidebar__brand-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.sidebar__brand-title{font-size:13px;font-weight:700;color:var(--color-text-primary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.sidebar__brand-sub{font-size:9px;font-weight:700;color:var(--color-text-tertiary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.1em}.sidebar__status{display:flex;align-items:center;gap:12px;margin:14px 14px 6px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border-default);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.sidebar__status-dot{width:9px;height:9px;border-radius:50%;background:var(--color-success-500);flex-shrink:0;box-shadow:0 0 0 3px var(--color-success-bg),0 0 12px var(--color-success-glow);animation:dotPulse 2.4s ease-in-out infinite}@keyframes dotPulse{0%,to{box-shadow:0 0 0 3px var(--color-success-bg),0 0 12px var(--color-success-glow)}50%{box-shadow:0 0 0 5px var(--color-success-bg),0 0 18px var(--color-success-glow)}}.sidebar__status div{min-width:0;display:flex;flex-direction:column;gap:2px}.sidebar__status-label{font-size:9px;font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.12em}.sidebar__status strong{max-width:200px;color:var(--color-text-primary);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}.sidebar__nav{flex:1;overflow-y:auto;padding:10px 12px 14px;scrollbar-width:thin;scrollbar-color:var(--color-bg-tertiary) transparent}.sidebar__nav::-webkit-scrollbar{width:4px}.sidebar__nav::-webkit-scrollbar-track{background:transparent}.sidebar__nav::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:2px}.sidebar__section{margin-top:18px}.sidebar__section:first-child{margin-top:6px}.sidebar__section-title{padding:0 10px 8px;color:var(--color-text-tertiary);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.sidebar__section-items{display:flex;flex-direction:column;gap:4px}.sidebar__item{position:relative;width:100%;min-height:44px;display:flex;align-items:center;gap:11px;padding:8px 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--color-text-secondary);font-family:var(--font-sans);cursor:pointer;text-align:left;transition:background .2s cubic-bezier(.32,.72,0,1),border-color .2s,color .2s,transform .2s;isolation:isolate}.sidebar__item:hover{background:var(--color-bg-surface);border-color:var(--color-border-default);color:var(--color-text-primary)}.sidebar__item--active{background:var(--color-primary-soft);color:var(--color-text-primary);border-color:var(--color-primary-ring);box-shadow:0 2px 8px var(--color-primary-glow)}.sidebar__item--active:after{content:"";position:absolute;left:-12px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--color-primary-500)}.sidebar__item-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--color-bg-surface);border:1px solid var(--color-border-soft);color:var(--color-text-secondary);flex-shrink:0;transition:background .2s,color .2s,border-color .2s}.sidebar__item:hover .sidebar__item-icon{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.sidebar__item-icon svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.sidebar__item--active .sidebar__item-icon{background:var(--color-primary-500);color:#fff;border-color:var(--color-primary-ring);box-shadow:0 2px 8px var(--color-primary-glow)}.sidebar__item-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.sidebar__item-label{color:inherit;font-size:13px;font-weight:600;line-height:1.2;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__item-hint{color:var(--color-text-tertiary);font-size:9px;font-weight:700;line-height:1.1;letter-spacing:.1em;text-transform:uppercase}.sidebar__item--active .sidebar__item-hint{color:var(--color-primary-500)}.sidebar__item-shortcut{flex-shrink:0;width:18px;height:18px;display:grid;place-items:center;border-radius:5px;border:1px solid var(--color-border-default);background:var(--color-bg-secondary);font-size:10px;font-weight:700;color:var(--color-text-tertiary);font-family:var(--font-mono);letter-spacing:0}.sidebar__item--active .sidebar__item-shortcut{border-color:var(--color-primary-ring);background:var(--color-primary-soft);color:var(--color-primary-500)}.sidebar__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-top:1px solid var(--color-border-soft);background:transparent;flex-shrink:0}.sidebar__footer-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.sidebar__footer span{color:var(--color-text-tertiary);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.sidebar__footer-version{color:var(--color-text-tertiary)!important;font-size:10px!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;font-family:var(--font-mono)}.sidebar__footer strong{padding:4px 9px;border-radius:999px;background:var(--color-success-bg);color:var(--color-success-500);font-size:10px;font-weight:800;letter-spacing:.08em;border:1px solid var(--color-success-border);text-transform:uppercase}@media(max-width:1024px){.sidebar{width:280px;margin:0}}@media(max-width:640px){.sidebar--mobile{width:84vw;max-width:320px}.sidebar__brand{padding:14px 14px 12px}.sidebar__brand-title{font-size:12.5px}.sidebar__brand-sub{font-size:9px}.sidebar__nav{padding:8px 10px 12px}}.tab-bar{position:relative;z-index:5;flex-shrink:0;overflow:visible;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-md);padding:10px 12px;box-shadow:var(--shadow-xs)}.tab-bar__track{display:flex;align-items:center;gap:0;overflow-x:auto;overflow-y:hidden;padding:4px 2px;margin:-4px -2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-bar__track::-webkit-scrollbar{height:0}.tab-bar__tab{position:relative;display:flex;align-items:center;gap:8px;height:36px;padding:0 12px 0 14px;margin:0 3px;border:1px solid var(--color-border-soft);border-radius:11px;min-width:130px;max-width:220px;justify-content:space-between;cursor:pointer;white-space:nowrap;font-size:12.5px;font-weight:500;font-family:var(--font-sans);color:var(--color-text-secondary);background:var(--color-bg-secondary);transition:background .2s cubic-bezier(.32,.72,0,1),border-color .2s,color .2s,box-shadow .2s,transform .2s;-webkit-user-select:none;user-select:none;flex-shrink:0;isolation:isolate;overflow:hidden}.tab-bar__tab:hover:not(.tab-bar__tab--active){background:var(--color-bg-surface);border-color:var(--color-border-default);color:var(--color-text-primary);transform:translateY(-1px)}.tab-bar__tab--active{background:var(--color-bg-surface);border-color:var(--color-primary-ring);color:var(--color-primary-500);font-weight:700;letter-spacing:-.01em;box-shadow:0 4px 14px var(--color-primary-glow)}.tab-bar__tab--active:after{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;background:var(--color-primary-500);pointer-events:none}.tab-bar__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;opacity:.7}.tab-bar__icon svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.tab-bar__tab--active .tab-bar__icon{opacity:1}.tab-bar__label{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.tab-bar__close{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:50%;font-size:13px;line-height:1;padding:0;flex-shrink:0;transition:background .16s,color .16s,opacity .16s;opacity:.6}.tab-bar__tab:hover .tab-bar__close,.tab-bar__tab--active .tab-bar__close{opacity:1}.tab-bar__close:hover{background:var(--color-danger-bg);color:var(--color-danger-500);opacity:1}.tab-bar__tab--active .tab-bar__close{color:var(--color-text-primary)}.tab-bar__tab--active .tab-bar__close:hover{background:var(--color-danger-bg);color:var(--color-danger-500)}@media(max-width:1024px){.tab-bar{padding:8px 10px;border-radius:var(--radius-sm)}.tab-bar__tab{height:34px;min-width:100px;max-width:170px;padding:0 10px 0 12px;font-size:11.5px;margin:0 2px}}@media(max-width:640px){.tab-bar{padding:6px 8px}.tab-bar__tab{height:32px;min-width:90px;max-width:150px;padding:0 8px 0 10px;font-size:11px}.tab-bar__close{width:18px;height:18px;font-size:12px}}.ui-btn{position:relative;display:inline-flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:8px!important;font-family:var(--font-sans);font-weight:600;letter-spacing:.01em;line-height:1;white-space:nowrap;cursor:pointer;border:1px solid var(--color-border-default);border-radius:var(--btn-radius);isolation:isolate;overflow:hidden;-webkit-user-select:none;user-select:none;text-decoration:none;vertical-align:middle;transition:background .18s cubic-bezier(.32,.72,0,1),border-color .18s,color .18s,transform .18s,box-shadow .18s,opacity .18s}.ui-btn>.ui-btn__icon,.ui-btn>.ui-btn__icon-mask,.ui-btn>.ui-btn__label,.ui-btn>.ui-btn__spinner{display:inline-flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;flex-shrink:0;vertical-align:middle;margin:0;line-height:1}.ui-btn>.ui-btn__label{display:inline-block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ui-btn:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.ui-btn:disabled,.ui-btn--loading{opacity:.5;cursor:not-allowed}.ui-btn--xs{min-height:26px;padding:0 10px;font-size:11px;border-radius:8px}.ui-btn--sm{min-height:30px;padding:0 14px;font-size:12px;border-radius:10px}.ui-btn--md{min-height:36px;padding:0 18px;font-size:13px;border-radius:12px}.ui-btn--lg{min-height:42px;padding:0 22px;font-size:14px;border-radius:14px}.ui-btn--block{width:100%}.ui-btn--icon-only.ui-btn--xs{width:26px;padding:0}.ui-btn--icon-only.ui-btn--sm{width:30px;padding:0}.ui-btn--icon-only.ui-btn--md{width:36px;padding:0}.ui-btn--icon-only.ui-btn--lg{width:42px;padding:0}.ui-btn--primary{background:var(--color-primary-500);color:var(--color-text-inverse);border-color:var(--color-primary-500);box-shadow:none}.ui-btn--primary:hover:not(:disabled){background:var(--color-primary-600);border-color:var(--color-primary-600)}.ui-btn--primary:active:not(:disabled){background:var(--color-primary-600);border-color:var(--color-primary-600)}.ui-btn--secondary{background:var(--color-bg-surface);color:var(--color-text-primary);border-color:var(--color-border-default);box-shadow:none}.ui-btn--secondary:hover:not(:disabled){background:var(--color-bg-surface);border-color:var(--color-border-strong)}.ui-btn--secondary:active:not(:disabled){background:var(--color-bg-pressed)}.ui-btn--ghost{background:transparent;color:var(--color-text-secondary);border-color:transparent;box-shadow:none}.ui-btn--ghost:hover:not(:disabled){background:var(--color-bg-surface);color:var(--color-text-primary)}.ui-btn--danger{background:var(--color-danger-bg);color:var(--color-danger-500);border-color:var(--color-danger-border);box-shadow:none}.ui-btn--danger:hover:not(:disabled){background:var(--color-danger-500);border-color:var(--color-danger-500);color:#fff}.ui-btn--danger:active:not(:disabled){filter:brightness(.92)}.ui-btn--success{background:var(--color-success-500);color:#fff;border-color:var(--color-success-500);box-shadow:none}.ui-btn--success:hover:not(:disabled){filter:brightness(.93)}.ui-btn--success:active:not(:disabled){filter:brightness(.86)}.ui-btn__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ui-btn__icon svg{width:1em;height:1em;font-size:16px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.ui-btn--xs .ui-btn__icon svg,.ui-btn--xs .ui-btn__icon-mask{font-size:13px;width:13px;height:13px}.ui-btn--sm .ui-btn__icon svg,.ui-btn--sm .ui-btn__icon-mask{font-size:14px;width:14px;height:14px}.ui-btn--md .ui-btn__icon svg,.ui-btn--md .ui-btn__icon-mask{font-size:15px;width:15px;height:15px}.ui-btn--lg .ui-btn__icon svg,.ui-btn--lg .ui-btn__icon-mask{font-size:16px;width:16px;height:16px}.ui-btn__label{display:inline-block;white-space:nowrap}.ui-btn__icon-mask{display:inline-block;background:currentColor;flex-shrink:0;mask-position:center;mask-size:contain;mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat}.ui-btn--icon-search .ui-btn__icon-mask{mask-image:var(--icon-search);-webkit-mask-image:var(--icon-search)}.ui-btn--icon-download .ui-btn__icon-mask{mask-image:var(--icon-download);-webkit-mask-image:var(--icon-download)}.ui-btn--icon-refresh .ui-btn__icon-mask{mask-image:var(--icon-refresh);-webkit-mask-image:var(--icon-refresh)}.ui-btn--icon-plus .ui-btn__icon-mask{mask-image:var(--icon-plus);-webkit-mask-image:var(--icon-plus)}.ui-btn--icon-save .ui-btn__icon-mask{mask-image:var(--icon-save);-webkit-mask-image:var(--icon-save)}.ui-btn--icon-trash .ui-btn__icon-mask{mask-image:var(--icon-trash);-webkit-mask-image:var(--icon-trash)}.ui-btn--icon-print .ui-btn__icon-mask{mask-image:var(--icon-print);-webkit-mask-image:var(--icon-print)}.ui-btn--icon-play .ui-btn__icon-mask{mask-image:var(--icon-play);-webkit-mask-image:var(--icon-play)}.ui-btn--icon-edit .ui-btn__icon-mask{mask-image:var(--icon-edit);-webkit-mask-image:var(--icon-edit)}.ui-btn--icon-copy .ui-btn__icon-mask{mask-image:var(--icon-copy);-webkit-mask-image:var(--icon-copy)}.ui-btn--icon-upload .ui-btn__icon-mask{mask-image:var(--icon-upload);-webkit-mask-image:var(--icon-upload)}.ui-btn__spinner{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:ui-btn-spin .7s linear infinite;flex-shrink:0}@keyframes ui-btn-spin{to{transform:rotate(360deg)}}.ui-card{display:flex;flex-direction:column;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;isolation:isolate;min-height:0}.ui-card--subtle{background:var(--color-bg-secondary);box-shadow:var(--shadow-xs)}.ui-card--strong{background:var(--color-bg-tertiary);box-shadow:var(--shadow-md)}.ui-card--scrollable .ui-card__body{overflow-y:auto;flex:1;min-height:0}.ui-card__header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0}.ui-card__heading{display:flex;flex-direction:column;gap:3px;min-width:0}.ui-card__title{margin:0;font-size:14px;font-weight:700;color:var(--color-text-primary);letter-spacing:-.01em;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-card__subtitle{margin:0;font-size:11px;font-weight:600;color:var(--color-text-tertiary);letter-spacing:.04em;line-height:1.3}.ui-card__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.ui-card__body{padding:16px 18px;flex:1 1 auto;min-height:0;color:var(--color-text-primary)}.ui-card__body-bodyless{flex:1 1 auto;min-height:0;color:var(--color-text-primary)}.ui-card__footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 18px;border-top:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0}.ui-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:ui-modal-overlay-in .18s cubic-bezier(.32,.72,0,1)}@keyframes ui-modal-overlay-in{0%{opacity:0}to{opacity:1}}.ui-modal{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:95vw;max-height:90vh;display:flex;flex-direction:column;animation:ui-modal-in .28s cubic-bezier(.32,.72,0,1);overflow:hidden}.ui-modal--full{width:95vw;height:90vh}@keyframes ui-modal-in{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.ui-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0}.ui-modal__title{font-size:15px;font-weight:700;color:var(--color-text-primary);letter-spacing:-.01em;margin:0}.ui-modal__header-extra{display:flex;align-items:center;gap:8px}.ui-modal__close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:10px;font-size:14px;color:var(--color-text-secondary);cursor:pointer;transition:background .16s,color .16s,border-color .16s;line-height:1;padding:0}.ui-modal__close:hover{background:var(--color-danger-bg);color:var(--color-danger-500);border-color:var(--color-danger-border)}.ui-modal__body{flex:1 1 auto;overflow-y:auto;padding:20px;background:transparent;color:var(--color-text-primary);min-height:0}.ui-modal__body-bodyless{flex:1 1 auto;overflow:hidden;background:transparent;color:var(--color-text-primary);min-height:0;display:flex;flex-direction:column}.ui-modal__footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0}.ui-sheet__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#00000073;opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.32,.72,0,1)}.ui-sheet__backdrop--open{opacity:1;pointer-events:auto}.ui-sheet{position:fixed;top:0;bottom:0;z-index:901;display:flex;flex-direction:column;background:var(--color-bg-surface);border:1px solid var(--color-border-default);box-shadow:var(--shadow-xl);color:var(--color-text-primary);isolation:isolate;transition:transform .32s cubic-bezier(.32,.72,0,1);will-change:transform}.ui-sheet--right{right:0;border-right:none;border-radius:var(--radius-lg) 0 0 var(--radius-lg);transform:translate(100%)}.ui-sheet--right.ui-sheet--open{transform:translate(0)}.ui-sheet--left{left:0;border-left:none;border-radius:0 var(--radius-lg) var(--radius-lg) 0;transform:translate(-100%)}.ui-sheet--left.ui-sheet--open{transform:translate(0)}.ui-sheet__header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px 16px;border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0}.ui-sheet__heading{display:flex;flex-direction:column;gap:4px;min-width:0}.ui-sheet__eyebrow{font-size:10px;font-weight:800;color:var(--color-primary-500);text-transform:uppercase;letter-spacing:.14em}.ui-sheet__title{margin:0;font-size:17px;font-weight:800;color:var(--color-text-primary);letter-spacing:-.015em;line-height:1.25}.ui-sheet__subtitle{margin:0;font-size:12px;color:var(--color-text-tertiary);font-weight:500;line-height:1.45}.ui-sheet__close{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:10px;font-size:14px;color:var(--color-text-secondary);cursor:pointer;transition:background .16s,color .16s,border-color .16s;line-height:1;padding:0;flex-shrink:0}.ui-sheet__close:hover{background:var(--color-danger-bg);color:var(--color-danger-500);border-color:var(--color-danger-border)}.ui-sheet__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px;background:transparent}.ui-sheet__footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0}.ui-sheet-form{display:flex;flex-direction:column;gap:16px}.ui-sheet-form__row{display:flex;flex-direction:column;gap:6px}.ui-sheet-form__row--cols-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ui-sheet-form__label{font-size:11px;font-weight:700;color:var(--color-text-secondary);letter-spacing:.05em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.ui-sheet-form__label-required:after{content:" *";color:var(--color-danger-500);font-weight:700}.ui-sheet-form__input,.ui-sheet-form__select,.ui-sheet-form__textarea{width:100%;height:38px;padding:0 12px;border:1px solid var(--color-border-default)!important;background:var(--color-bg-surface)!important;border-radius:10px!important;font-size:13px;font-family:var(--font-sans);color:var(--color-text-primary);outline:none;transition:background .18s,border-color .18s,box-shadow .18s}.ui-sheet-form__textarea{height:auto;min-height:90px;padding:10px 12px;resize:vertical;font-family:var(--font-mono);font-size:12px}.ui-sheet-form__input:focus,.ui-sheet-form__select:focus,.ui-sheet-form__textarea:focus{background:var(--color-bg-secondary)!important;border-color:var(--color-primary-500)!important;box-shadow:0 0 0 3px var(--color-primary-ring)!important}.ui-sheet-form__hint{font-size:11px;color:var(--color-text-tertiary);letter-spacing:.02em;margin-top:2px}.ui-sheet-form__section{padding:14px 0;border-top:1px solid var(--color-border-soft)}.ui-sheet-form__section:first-child{padding-top:0;border-top:none}.ui-sheet-form__section-title{font-size:11px;font-weight:800;color:var(--color-primary-500);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}@media(max-width:1024px){.ui-sheet{max-width:min(95vw,520px)!important}.ui-sheet__header{padding:16px 18px 14px}.ui-sheet__body{padding:18px}.ui-sheet__footer{padding:12px 18px}.ui-sheet__title{font-size:16px}}@media(max-width:640px){.ui-sheet{width:100%!important;max-width:100vw!important;border-radius:0!important;border-left:none;border-right:none}.ui-sheet--right,.ui-sheet--left{border-radius:0!important}.ui-sheet__header{padding:14px 16px 12px}.ui-sheet__body{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0))}.ui-sheet__footer{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0));gap:8px}.ui-sheet__footer>.ui-btn{flex:1 1 0}.ui-sheet__title{font-size:15px}.ui-sheet__subtitle{font-size:11.5px}.ui-sheet__close{width:36px;height:36px}.ui-sheet-form__row--cols-2{grid-template-columns:1fr;gap:14px}.ui-sheet-form__input,.ui-sheet-form__select{height:42px;font-size:14px}.ui-sheet-form__textarea{font-size:13px}}@media(max-width:380px){.ui-sheet__header{padding:12px 14px 10px}.ui-sheet__body{padding:14px}.ui-sheet__footer{padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0))}.ui-sheet__title{font-size:14px}}@media(prefers-reduced-motion:reduce){.ui-sheet,.ui-sheet__backdrop{transition:none!important}}.ui-dd{position:relative;display:inline-block;font-family:var(--font-sans)}.ui-dd--block{display:block;width:100%}.ui-dd__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--color-border-default);border-radius:var(--radius-xs);padding:0 12px;font-size:13px;font-weight:500;color:var(--color-text-primary);background:var(--color-bg-surface);cursor:pointer;outline:none;font-family:inherit;transition:background .18s,border-color .18s,box-shadow .18s;text-align:left}.ui-dd--sm .ui-dd__trigger{height:30px;font-size:12px}.ui-dd--md .ui-dd__trigger{height:36px;font-size:13px}.ui-dd--lg .ui-dd__trigger{height:42px;font-size:14px}.ui-dd__trigger:hover:not(:disabled){background:var(--color-bg-surface);border-color:var(--color-border-strong)}.ui-dd--open .ui-dd__trigger,.ui-dd__trigger:focus-visible{background:var(--color-bg-surface);border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-ring)}.ui-dd--disabled .ui-dd__trigger{opacity:.55;cursor:not-allowed;color:var(--color-text-tertiary)}.ui-dd__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.ui-dd__value--placeholder{color:var(--color-text-tertiary)}.ui-dd__arrow{display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);flex-shrink:0;transition:transform .2s cubic-bezier(.32,.72,0,1),color .18s}.ui-dd--open .ui-dd__arrow{transform:rotate(180deg);color:var(--color-primary-500)}.ui-dd__panel{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);overflow:hidden;animation:ui-dd-in .18s cubic-bezier(.32,.72,0,1)}@keyframes ui-dd-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ui-dd__search{padding:8px 8px 4px;border-bottom:1px solid var(--color-border-soft)}.ui-dd__search-input{width:100%;height:30px;padding:0 10px;border:1px solid var(--color-border-default)!important;border-radius:8px!important;background:var(--color-bg-surface)!important;color:var(--color-text-primary);font-size:12px;outline:none;transition:border-color .18s,box-shadow .18s}.ui-dd__search-input:focus{border-color:var(--color-primary-500)!important;box-shadow:0 0 0 3px var(--color-primary-ring)!important}.ui-dd__list{list-style:none;margin:0;padding:6px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-bg-tertiary) transparent}.ui-dd__list::-webkit-scrollbar{width:4px}.ui-dd__list::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:2px}.ui-dd__option{display:flex;align-items:center;gap:10px;min-height:32px;padding:0 12px 0 30px;font-size:13px;color:var(--color-text-primary);border-radius:8px;cursor:pointer;position:relative;transition:background .14s,color .14s;white-space:nowrap;-webkit-user-select:none;user-select:none}.ui-dd__option:hover,.ui-dd__option--focused{background:var(--color-bg-surface)}.ui-dd__option--selected{color:var(--color-primary-500);font-weight:700}.ui-dd__option--selected:hover,.ui-dd__option--selected.ui-dd__option--focused{background:var(--color-primary-soft)}.ui-dd__option--disabled{opacity:.45;cursor:not-allowed}.ui-dd__option-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.ui-dd__option-hint{font-size:11px;color:var(--color-text-tertiary);font-weight:500;flex-shrink:0}.ui-dd__check{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--color-primary-500);display:flex;align-items:center}.ui-dd__group{padding:8px 12px 4px;font-size:10px;font-weight:800;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.1em;-webkit-user-select:none;user-select:none}.ui-dd__empty{padding:16px 12px;text-align:center;color:var(--color-text-tertiary);font-size:12px}.ui-dg__wrap{position:relative;overflow:auto;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;max-width:100%;min-height:0;border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-surface);box-shadow:var(--shadow-xs);scrollbar-width:auto;scrollbar-color:var(--color-primary-ring) var(--color-bg-secondary);align-self:stretch}.ui-dg__wrap::-webkit-scrollbar{width:12px;height:12px;background:var(--color-bg-secondary)}.ui-dg__wrap::-webkit-scrollbar-track{background:var(--color-bg-secondary)!important;border-left:1px solid var(--color-border-soft);border-top:1px solid var(--color-border-soft)}.ui-dg__wrap::-webkit-scrollbar-thumb{background:var(--color-primary-ring)!important;border:3px solid transparent;border-radius:8px;background-clip:content-box!important;min-height:40px;min-width:40px;transition:background .16s}.ui-dg__wrap::-webkit-scrollbar-thumb:hover{background:var(--color-primary-500)!important;background-clip:content-box!important}.ui-dg__wrap::-webkit-scrollbar-thumb:active{background:var(--color-primary-600)!important;background-clip:content-box!important}.ui-dg__wrap::-webkit-scrollbar-corner{background:var(--color-bg-secondary)!important}@supports (-webkit-touch-callout: none){.ui-dg__wrap::-webkit-scrollbar{-webkit-appearance:none;width:12px;height:12px}}.ui-dg__table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;color:var(--color-text-primary);font-family:var(--font-sans)}.ui-dg__th{position:sticky;top:0;z-index:4;padding:0 14px;height:42px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-align:center;border-bottom:2px solid var(--color-primary-ring);white-space:nowrap;-webkit-user-select:none;user-select:none}.ui-dg__th+.ui-dg__th{border-left:1px solid var(--color-border-soft)}.ui-dg__th--sortable{cursor:pointer;transition:background .16s,color .16s}.ui-dg__th--sortable:hover{background:var(--color-bg-surface);color:var(--color-primary-500)}.ui-dg__th-inner{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}.ui-dg__sort{display:inline-block;font-size:9px;color:var(--color-text-tertiary);transition:transform .18s,color .18s}.ui-dg__sort--asc{color:var(--color-primary-500);transform:rotate(0)}.ui-dg__sort--desc{color:var(--color-primary-500);transform:rotate(180deg)}.ui-dg__th--tone-brand{background:var(--color-primary-soft);color:var(--color-primary-500)}.ui-dg__th--tone-success{background:var(--color-success-bg);color:var(--color-success-500)}.ui-dg__th--tone-warning{background:var(--color-warning-bg);color:var(--color-warning-500)}.ui-dg__th--tone-danger{background:var(--color-danger-bg);color:var(--color-danger-500)}.ui-dg__th--tone-muted{background:var(--color-bg-secondary);color:var(--color-text-tertiary)}.ui-dg__th--sticky-left,.ui-dg__cell--sticky-left{position:sticky;left:0;z-index:3;background:var(--color-bg-tertiary);box-shadow:4px 0 8px -4px #0000004d}.ui-dg__th--sticky-left{z-index:6}.ui-dg__th--sticky-right,.ui-dg__cell--sticky-right{position:sticky;right:0;z-index:3;background:var(--color-bg-tertiary);box-shadow:-4px 0 8px -4px #0000004d}.ui-dg__th--sticky-right{z-index:6}.ui-dg__cell{padding:0 14px;height:40px;border-bottom:1px solid var(--color-border-soft);color:var(--color-text-primary);white-space:nowrap;vertical-align:middle;text-align:center;font-variant-numeric:tabular-nums;font-size:12.5px}.ui-dg__cell+.ui-dg__cell{border-left:1px solid var(--color-border-soft)}.ui-dg__cell--left{text-align:left}.ui-dg__cell--center{text-align:center}.ui-dg__cell--right{text-align:right}.ui-dg--compact .ui-dg__th{height:34px;font-size:10px}.ui-dg--compact .ui-dg__cell{height:32px;font-size:11.5px;padding:0 10px}.ui-dg--striped tbody tr:nth-child(2n)>td:not(.ui-dg__cell--sticky-left):not(.ui-dg__cell--sticky-right){background:var(--color-bg-secondary)}.ui-dg__row--clickable{cursor:pointer}.ui-dg__row--clickable:hover>td{background:var(--color-primary-soft)!important;color:var(--color-text-primary)}.ui-dg__row--selected>td{background:var(--color-primary-soft)!important;color:var(--color-text-primary)!important;font-weight:600}.ui-dg__row--selected>td:first-child{box-shadow:inset 3px 0 0 var(--color-primary-500)}.ui-dg__row--clickable.ui-dg__row--selected:hover>td{background:var(--color-primary-soft)!important}.ui-dg__empty{padding:36px 12px!important;height:auto!important;color:var(--color-text-tertiary);font-size:13px}.ui-dg__loading-row td{height:60px!important;color:var(--color-text-secondary)}.ui-dg__spinner{display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:middle;border:2px solid var(--color-border-default);border-top-color:var(--color-primary-500);border-radius:50%;animation:ui-dg-spin .7s linear infinite}@keyframes ui-dg-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.ui-dg__th{height:36px;font-size:10px;padding:0 10px}.ui-dg__cell{height:36px;font-size:11.5px;padding:0 10px}}.ui-dg__checkbox,.ztm-check,.lp-check,.ht-cb-col input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:0;border:1.5px solid var(--color-border-strong);border-radius:5px;background:var(--color-bg-surface);cursor:pointer;position:relative;transition:border-color .16s,background .16s,box-shadow .16s;vertical-align:middle;flex-shrink:0;display:inline-block;box-shadow:none}.ui-dg__checkbox:hover,.ztm-check:hover,.lp-check:hover,.ht-cb-col input[type=checkbox]:hover{border-color:var(--color-primary-500)}.ui-dg__checkbox:checked,.ztm-check:checked,.lp-check:checked,.ht-cb-col input[type=checkbox]:checked{background:var(--color-primary-500);border-color:var(--color-primary-500);box-shadow:none}.ui-dg__checkbox:checked:after,.ztm-check:checked:after,.lp-check:checked:after,.ht-cb-col input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg)}.ui-dg__checkbox:focus-visible,.ztm-check:focus-visible,.lp-check:focus-visible,.ht-cb-col input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-ring)}.ui-dg__checkbox:disabled,.ztm-check:disabled,.lp-check:disabled,.ht-cb-col input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.ui-dg__th:has(input[type=checkbox]),.ui-dg__cell:has(input[type=checkbox]){padding:0 8px}.ui-sf{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:14px 16px;background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.ui-sf--compact{padding:10px 12px;gap:10px}.ui-sf__fields{display:flex;align-items:flex-end;gap:12px;flex:1;min-width:0;flex-wrap:wrap}.ui-sf--compact .ui-sf__fields{gap:8px}.ui-sf__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.ui-sf__field{display:flex;flex-direction:column;gap:5px;min-width:0}.ui-sf__field-label{font-size:11px;font-weight:700;color:var(--color-text-secondary);letter-spacing:.06em;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap}.ui-sf__field-label--sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ui-sf__field-control{display:flex;flex-direction:column;min-width:0}.ui-sf__field-control>input:not([type=checkbox]):not([type=radio]),.ui-sf__field-control>select,.ui-sf__field-control>textarea{width:100%;height:36px;padding:0 12px;border:1px solid var(--color-border-default);border-radius:var(--radius-xs);background:var(--color-bg-surface);font-size:13px;color:var(--color-text-primary);font-family:var(--font-sans);outline:none;transition:background .18s,border-color .18s,box-shadow .18s}.ui-sf__field-control>input:focus,.ui-sf__field-control>select:focus,.ui-sf__field-control>textarea:focus{background:var(--color-bg-surface);border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-ring)}.ui-sf--compact .ui-sf__field-control>input,.ui-sf--compact .ui-sf__field-control>select,.ui-sf--compact .ui-sf__field-control>textarea{height:32px;font-size:12px}.ui-tswitch-row{display:inline-flex;align-items:center;gap:12px;-webkit-user-select:none;user-select:none;cursor:pointer}.ui-tswitch-row__label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.ui-tswitch-row__hint{font-size:11px;color:var(--color-text-tertiary)}.ui-tswitch{display:inline-flex;align-items:center;background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:999px;padding:2px;cursor:pointer;flex-shrink:0;transition:background .24s cubic-bezier(.32,.72,0,1),border-color .24s;outline:none}.ui-tswitch--sm{width:38px;height:22px}.ui-tswitch--md{width:46px;height:26px}.ui-tswitch--lg{width:54px;height:30px}.ui-tswitch:focus-visible{box-shadow:0 0 0 3px var(--color-primary-ring)}.ui-tswitch:disabled{opacity:.45;cursor:not-allowed}.ui-tswitch--on{background:var(--color-primary-500);border-color:var(--color-primary-500);box-shadow:0 2px 8px var(--color-primary-glow)}.ui-tswitch__thumb{background:#fff;border-radius:50%;box-shadow:0 2px 6px #0000004d,0 0 0 .5px #0000000a;transition:transform .24s cubic-bezier(.32,.72,0,1)}.ui-tswitch--sm .ui-tswitch__thumb{width:16px;height:16px}.ui-tswitch--md .ui-tswitch__thumb{width:20px;height:20px}.ui-tswitch--lg .ui-tswitch__thumb{width:24px;height:24px}.ui-tswitch--sm.ui-tswitch--on .ui-tswitch__thumb{transform:translate(16px)}.ui-tswitch--md.ui-tswitch--on .ui-tswitch__thumb{transform:translate(20px)}.ui-tswitch--lg.ui-tswitch--on .ui-tswitch__thumb{transform:translate(22px)}.ui-sc{display:inline-flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:12px;padding:3px;gap:0}.ui-sc--block{display:flex;width:100%}.ui-sc__btn{flex:1;background:transparent;border:none;cursor:pointer;font-family:var(--font-sans);font-weight:600;color:var(--color-text-secondary);border-radius:9px;transition:background .18s,color .18s,box-shadow .18s;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1.4}.ui-sc--sm .ui-sc__btn{padding:4px 12px;font-size:11px}.ui-sc--md .ui-sc__btn{padding:6px 16px;font-size:12px}.ui-sc--lg .ui-sc__btn{padding:8px 20px;font-size:13px}.ui-sc__btn:hover:not(.ui-sc__btn--active):not(:disabled){color:var(--color-text-primary);background:var(--color-bg-surface)}.ui-sc__btn:disabled{opacity:.4;cursor:not-allowed}.ui-sc__btn--active{background:var(--color-bg-surface);color:var(--color-primary-500);font-weight:700;box-shadow:var(--shadow-xs)}.ui-tf{display:inline-flex;flex-direction:column;gap:6px;font-family:var(--font-sans);min-width:0}.ui-tf--block{display:flex;width:100%}.ui-tf__label{font-size:12px;font-weight:600;color:var(--color-text-secondary);letter-spacing:.02em;-webkit-user-select:none;user-select:none}.ui-tf__shell{position:relative;display:flex;align-items:center;gap:0;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-xs);transition:background .18s,border-color .18s,box-shadow .18s;overflow:hidden}.ui-tf__shell:hover:not(:focus-within){background:var(--color-bg-surface);border-color:var(--color-border-strong)}.ui-tf__shell:focus-within{background:var(--color-bg-surface);border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-ring)}.ui-tf--error .ui-tf__shell{border-color:var(--color-danger-500)}.ui-tf--error .ui-tf__shell:focus-within{box-shadow:0 0 0 3px var(--color-danger-border)}.ui-tf--disabled .ui-tf__shell{opacity:.55;cursor:not-allowed}.ui-tf__input{flex:1;min-width:0;border:none!important;background:transparent!important;outline:none;padding:0 12px;font-family:inherit;color:var(--color-text-primary);font-size:13px}.ui-tf--sm .ui-tf__shell{height:30px}.ui-tf--md .ui-tf__shell{height:36px}.ui-tf--lg .ui-tf__shell{height:42px}.ui-tf--sm .ui-tf__input{font-size:12px}.ui-tf--md .ui-tf__input{font-size:13px}.ui-tf--lg .ui-tf__input{font-size:14px}.ui-tf__input::placeholder{color:var(--color-text-tertiary)}.ui-tf__icon{display:inline-flex;align-items:center;justify-content:center;width:32px;color:var(--color-text-tertiary);flex-shrink:0}.ui-tf__icon--left{border-right:1px solid var(--color-border-soft)}.ui-tf__icon--right{border-left:1px solid var(--color-border-soft)}.ui-tf__icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ui-tf__feedback{font-size:11px;color:var(--color-text-tertiary);letter-spacing:.02em}.ui-tf__feedback--error{color:var(--color-danger-500);font-weight:600}.ui-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:999px;font-family:var(--font-sans);font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1}.ui-badge--sm{padding:4px 10px;font-size:10.5px;min-width:28px}.ui-badge--md{padding:5px 12px;font-size:11.5px;min-width:34px}.ui-badge--lg{padding:6px 14px;font-size:12.5px;min-width:42px}.ui-badge--soft.ui-badge--brand{background:var(--color-primary-soft);color:var(--color-primary-500);border-color:var(--color-primary-ring)}.ui-badge--soft.ui-badge--success{background:var(--color-success-bg);color:var(--color-success-500);border-color:var(--color-success-border)}.ui-badge--soft.ui-badge--warning{background:var(--color-warning-bg);color:var(--color-warning-500);border-color:var(--color-warning-border)}.ui-badge--soft.ui-badge--danger{background:var(--color-danger-bg);color:var(--color-danger-500);border-color:var(--color-danger-border)}.ui-badge--soft.ui-badge--neutral{background:var(--color-bg-surface);color:var(--color-text-secondary);border-color:var(--color-border-default)}.ui-badge--soft.ui-badge--accent{background:var(--color-primary-soft);color:var(--color-primary-500);border-color:var(--color-primary-soft)}.ui-badge--solid.ui-badge--brand{background:var(--color-primary-500);color:#fff}.ui-badge--solid.ui-badge--success{background:var(--color-success-500);color:#fff}.ui-badge--solid.ui-badge--warning{background:var(--color-warning-500);color:#fff}.ui-badge--solid.ui-badge--danger{background:var(--color-danger-500);color:#fff}.ui-badge--solid.ui-badge--neutral{background:var(--color-bg-surface);color:var(--color-text-primary)}.ui-badge--solid.ui-badge--accent{background:var(--color-primary-500);color:#062520}.ui-badge--outline{background:transparent}.ui-badge--outline.ui-badge--brand{color:var(--color-primary-500);border-color:var(--color-primary-ring)}.ui-badge--outline.ui-badge--success{color:var(--color-success-500);border-color:var(--color-success-border)}.ui-badge--outline.ui-badge--warning{color:var(--color-warning-500);border-color:var(--color-warning-border)}.ui-badge--outline.ui-badge--danger{color:var(--color-danger-500);border-color:var(--color-danger-border)}.ui-badge--outline.ui-badge--neutral{color:var(--color-text-secondary);border-color:var(--color-border-default)}.ui-badge--outline.ui-badge--accent{color:var(--color-primary-500);border-color:var(--color-primary-500)}.ui-badge__dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0;box-shadow:0 0 8px currentColor}.ui-badge--sm .ui-badge__dot{width:6px;height:6px}.ui-badge--lg .ui-badge__dot{width:8px;height:8px}.ui-page-header{display:flex;flex-direction:column;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border-default);background:var(--color-bg-surface);flex-shrink:0}.ui-page-header__main{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.ui-page-header__heading{display:flex;flex-direction:column;gap:4px;min-width:0}.ui-page-header__eyebrow{font-size:10px;font-weight:800;color:var(--color-primary-500);text-transform:uppercase;letter-spacing:.14em}.ui-page-header__title{margin:0;font-size:18px;font-weight:800;color:var(--color-text-primary);letter-spacing:-.02em;line-height:1.2}.ui-page-header__subtitle{margin:0;font-size:12px;color:var(--color-text-tertiary);font-weight:500;line-height:1.4}.ui-page-header__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.ui-page-header__bottom{display:flex;align-items:center;gap:12px}.ui-theme-toggle{display:inline-flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:999px;padding:3px;gap:0}.ui-theme-toggle__option{width:28px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:999px;color:var(--color-text-tertiary);cursor:pointer;transition:background .18s,color .18s;padding:0}.ui-theme-toggle__option:hover{color:var(--color-text-primary)}.ui-theme-toggle__option--active{background:var(--color-bg-surface);color:var(--color-primary-500);box-shadow:var(--shadow-xs)}.ui-theme-toggle__option svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.csel{position:relative;display:block;width:100%}.csel__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--color-border-default);border-radius:var(--radius-xs);padding:0 12px;height:36px;font-size:13px;font-weight:500;color:var(--color-text-primary);background:var(--color-bg-surface);cursor:pointer;outline:none;font-family:var(--font-sans);transition:border-color .18s,background .18s,box-shadow .18s;text-align:left}.csel__trigger:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-bg-surface)}.csel--open .csel__trigger,.csel__trigger:focus-visible{border-color:var(--color-primary-500);background:var(--color-bg-surface);box-shadow:0 0 0 3px var(--color-primary-ring)}.csel--disabled .csel__trigger{background:var(--color-bg-secondary);border-color:var(--color-border-soft);color:var(--color-text-tertiary);cursor:not-allowed}.csel__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.csel__value--placeholder{color:var(--color-text-tertiary)}.csel__arrow{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--color-text-tertiary);flex-shrink:0;transition:transform .2s cubic-bezier(.32,.72,0,1),color .18s}.csel--open .csel__arrow{transform:rotate(180deg);color:var(--color-primary-500)}.csel--disabled .csel__arrow{color:var(--color-text-tertiary);opacity:.4}.csel__dropdown{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);overflow:hidden;animation:cselDropIn .18s cubic-bezier(.32,.72,0,1)}@keyframes cselDropIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.csel__list{list-style:none;margin:0;padding:6px;max-height:240px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-bg-tertiary) transparent}.csel__list::-webkit-scrollbar{width:4px}.csel__list::-webkit-scrollbar-track{background:transparent}.csel__list::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:2px}.csel__option{display:flex;align-items:center;gap:0;min-height:32px;padding:0 12px 0 30px;font-size:13px;color:var(--color-text-primary);border-radius:8px;cursor:pointer;position:relative;transition:background .14s,color .14s;white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:var(--font-sans)}.csel__option:hover,.csel__option--focused{background:var(--color-bg-surface)}.csel__option--selected{color:var(--color-primary-500);font-weight:700}.csel__option--selected:hover,.csel__option--selected.csel__option--focused{background:var(--color-primary-soft)}.csel__option-check{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--color-primary-500);display:flex;align-items:center}.current-cards{padding:0 12px 12px;display:flex;flex-direction:column;flex:1}.current-cards__info{font-size:12px;color:var(--color-text-secondary);display:flex;gap:18px;margin-bottom:12px;padding-top:6px;line-height:1.5}.current-cards__grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,auto);gap:10px}.current-card{border:1px solid var(--color-border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-surface);box-shadow:var(--shadow-xs)}.current-card__header{background:var(--color-bg-secondary);font-size:11px;font-weight:700;color:var(--color-text-secondary);padding:8px 10px;text-align:center;border-bottom:1px solid var(--color-border-soft);letter-spacing:.1em;text-transform:uppercase}.current-card__table{width:100%;border-collapse:collapse}.current-card__table tr+tr td{border-top:1px solid var(--color-border-soft)}.current-card__label{font-size:11px;color:var(--color-text-tertiary);padding:7px 10px;white-space:nowrap;width:42px;text-align:center;background:var(--color-bg-secondary);border-right:1px solid var(--color-border-soft);font-weight:600;line-height:1.4}.current-card__max-label{font-size:11px;color:var(--color-primary-500);padding:7px 10px;width:42px;text-align:center;background:var(--color-primary-soft);border-right:1px solid var(--color-primary-ring);font-weight:700;line-height:1.4}.current-card__value,.current-card__max-value{padding:7px 10px 7px 4px;text-align:right;white-space:nowrap;color:var(--color-text-primary)}.current-card__max-value{background:var(--color-primary-soft)}.val-num{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--font-mono);color:var(--color-text-primary);letter-spacing:-.01em}.val-unit{font-size:11px;font-weight:500;color:var(--color-text-tertiary);font-family:var(--font-mono);margin-left:3px}.current-card__max-value .val-num,.current-card__max-value .val-unit{color:var(--color-primary-500)}.current-card__value--high .val-num,.current-card__value--high .val-unit{color:var(--color-warning-500);font-weight:700}.current-card__value--high{background:var(--color-warning-bg)}.ht-wrap{overflow-x:auto;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch}.ht{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;white-space:nowrap;color:var(--color-text-primary)}.ht th,.ht td{border-right:1px solid var(--color-border-soft);border-bottom:1px solid var(--color-border-soft);box-sizing:border-box}.ht th:first-child,.ht td:first-child{border-left:1px solid var(--color-border-soft)}.ht thead tr:first-child th{border-top:1px solid var(--color-border-soft)}.ht thead th{position:sticky;text-align:center;font-weight:700;padding:0 8px;height:30px;line-height:30px;z-index:3;white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}.ht thead tr:nth-child(1) th{top:0}.ht thead tr:nth-child(2) th{top:30px}.ht thead tr:nth-child(3) th{top:60px}.ht.ht--compact thead tr:nth-child(2) th{top:24px}.ht.ht--compact thead tr:nth-child(3) th{top:48px}.ht-h-base{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.ht-h-damper,.ht-h-damper-sub,.ht-h-odd{background:var(--color-primary-soft);color:var(--color-primary-500)}.ht-h-even{background:var(--color-success-bg);color:var(--color-success-500)}.ht-h-temp,.ht-h-curr{background:var(--color-primary-soft);color:var(--color-primary-500);font-size:11px}.ht-h-col{background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:600}.ht thead th.ht-sticky{position:sticky;top:0!important;z-index:8;vertical-align:middle;transform:translateZ(0)}.ht tbody td.ht-sticky{position:sticky;z-index:2;background:var(--color-bg-surface)}.ht tbody tr:nth-child(2n) td.ht-sticky{background:var(--color-bg-secondary)}.ht tbody tr:hover td.ht-sticky,.ht-row--selected td.ht-sticky{background:var(--color-primary-soft)!important}.ht-time-col{box-shadow:3px 0 6px -2px #00000040}.ht .ht-cb-col{width:32px;min-width:32px;max-width:32px;text-align:center!important;padding:0}.ht .ht-date-col{width:84px;min-width:84px;max-width:84px}.ht .ht-time-col{width:88px;min-width:88px;max-width:88px}.ht th:not(.ht-sticky),.ht td:not(.ht-sticky){min-width:50px}.ht tbody tr{background:transparent}.ht tbody tr:nth-child(2n){background:var(--color-bg-secondary)}.ht tbody tr:hover{background:var(--color-primary-soft)!important}.ht td{padding:4px 8px;height:30px;text-align:center;color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-size:12px;background:transparent;line-height:1.4;font-family:var(--font-mono)}.ht-row--selected{background:var(--color-primary-soft)!important}.ht-row--selected td{background:transparent!important}.ht--compact td,.ht--compact thead th{font-size:11px;padding:0 6px;height:24px;min-width:44px}.ht-cb-col input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;border:1.5px solid var(--color-border-strong);border-radius:4px;background:var(--color-bg-secondary);cursor:pointer;position:relative;transition:border-color .16s,background .16s;vertical-align:middle;display:block;margin:0 auto}.ht-cb-col input[type=checkbox]:hover{border-color:var(--color-primary-500)}.ht-cb-col input[type=checkbox]:checked{background:var(--color-primary-500);border-color:var(--color-primary-500);box-shadow:0 0 8px var(--color-primary-glow)}.ht-cb-col input[type=checkbox]:checked:after{content:"";position:absolute;left:2px;top:0;width:5px;height:8px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg)}.ht-cb-col input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-ring)}.chart-panel{display:flex;flex-direction:column;height:100%;padding:12px 14px 8px}.chart-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.chart-panel__title{font-size:14px;font-weight:700;color:var(--color-text-primary);letter-spacing:-.01em}.chart-panel__pause-btn{background:linear-gradient(180deg,var(--color-primary-500) 0%,var(--color-primary-600) 100%);color:var(--color-text-inverse);border:1px solid rgba(255,255,255,.18);border-radius:9px;padding:5px 12px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:transform .18s,box-shadow .18s,filter .18s;box-shadow:0 3px 10px var(--color-primary-glow),inset 0 1px #ffffff4d}.chart-panel__pause-btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px var(--color-primary-glow),inset 0 1px #fff6}.chart-panel__pause-btn--paused{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border-default);box-shadow:none}.chart-panel__pause-btn--paused:hover{background:var(--color-bg-surface)}.chart-panel__info{font-size:12px;color:var(--color-text-secondary);display:flex;gap:16px;margin-bottom:8px;line-height:1.4}.chart-panel__pagination{display:flex;align-items:center;gap:7px;margin-bottom:6px}.chart-panel__page-btn{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:8px;width:26px;height:26px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);padding:0;line-height:1;transition:background .16s,color .16s,transform .16s;box-shadow:none}.chart-panel__page-btn:hover:not(:disabled){background:var(--color-bg-surface);color:var(--color-text-primary);transform:translateY(-1px)}.chart-panel__page-btn:disabled{opacity:.4;cursor:not-allowed}.chart-panel__page-info{font-size:12px;color:var(--color-text-secondary);min-width:38px;text-align:center;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.chart-panel__header-actions{display:flex;align-items:center;gap:7px}.chart-panel__zoom-reset-btn{background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border-default);border-radius:9px;padding:5px 10px;font-size:11px;font-weight:600;cursor:pointer;transition:background .16s,transform .16s;box-shadow:none}.chart-panel__zoom-reset-btn:hover{background:var(--color-bg-surface);transform:translateY(-1px)}.chart-panel__zoom-indicator{color:var(--color-primary-500);font-weight:700;font-size:11px;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.chart-panel__chart{flex:1;min-height:0;cursor:crosshair;-webkit-user-select:none;user-select:none}.zpl-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999;animation:zplOverlayIn .18s cubic-bezier(.32,.72,0,1)}@keyframes zplOverlayIn{0%{opacity:0}to{opacity:1}}.zpl-modal{width:90vw;max-width:1100px;height:85vh;max-height:750px;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden;animation:zplModalIn .28s cubic-bezier(.32,.72,0,1)}@keyframes zplModalIn{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.zpl-modal__header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0}.zpl-modal__title{font-size:14px;font-weight:700;color:var(--color-text-primary);margin:0;letter-spacing:-.01em}.zpl-modal__close{width:30px;height:30px;border:1px solid var(--color-border-default);background:var(--color-bg-surface);border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:background .16s,color .16s,border-color .16s}.zpl-modal__close:hover{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger-500)}.zpl-modal__body{flex:1;display:flex;overflow:hidden;min-height:0}.zpl-modal__editor-pane{width:50%;display:flex;flex-direction:column;border-right:1px solid var(--color-border-soft)}.zpl-modal__controls{display:flex;gap:14px;padding:10px 14px;border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-wrap:wrap;flex-shrink:0}.zpl-modal__control-row{display:flex;align-items:center;gap:6px}.zpl-modal__control-row label{font-size:11px;font-weight:700;color:var(--color-text-secondary);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}.zpl-modal__control-row select,.zpl-modal__control-row input{height:30px;padding:0 10px;border:1px solid var(--color-border-default);border-radius:8px;font-size:11px;background:var(--color-bg-secondary);color:var(--color-text-primary)}.zpl-modal__control-row input{width:60px}.zpl-modal__textarea{flex:1;resize:none;border:none;padding:14px 16px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--color-text-primary);background:transparent!important;outline:none;overflow-y:auto}.zpl-modal__textarea::placeholder{color:var(--color-text-tertiary)}.zpl-modal__actions{display:flex;gap:10px;padding:10px 14px;border-top:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0}.zpl-modal__btn{height:32px;padding:0 14px;border:1px solid var(--color-border-default);border-radius:10px;background:var(--color-bg-surface);font-size:12px;font-weight:600;color:var(--color-text-primary);cursor:pointer;white-space:nowrap;transition:background .16s,border-color .16s,transform .16s}.zpl-modal__btn:hover{background:var(--color-bg-surface);border-color:var(--color-border-strong);transform:translateY(-1px)}.zpl-modal__btn:disabled{opacity:.5;cursor:default}.zpl-modal__btn--primary{background:var(--color-primary-500);color:var(--color-text-inverse);border-color:var(--color-primary-500)}.zpl-modal__btn--primary:hover{background:var(--color-primary-600);border-color:var(--color-primary-600);transform:translateY(-1px)}.zpl-modal__btn--primary:disabled{opacity:.5}.zpl-modal__preview-pane{width:50%;display:flex;flex-direction:column;background:var(--color-bg-secondary)}.zpl-modal__preview-header{padding:10px 16px;font-size:11px;font-weight:700;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0;letter-spacing:.1em;text-transform:uppercase}.zpl-modal__preview-area{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto;background-color:var(--color-bg-secondary);background-image:linear-gradient(45deg,rgba(15,30,60,.06) 25%,transparent 25%),linear-gradient(-45deg,rgba(15,30,60,.06) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(15,30,60,.06) 75%),linear-gradient(-45deg,transparent 75%,rgba(15,30,60,.06) 75%);background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0}.zpl-modal__label-img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 8px 28px #00000073,0 0 0 1px var(--color-border-default);border-radius:6px;background:var(--color-bg-surface)}.zpl-modal__loading{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--color-text-secondary);font-size:13px}.zpl-modal__spinner{width:36px;height:36px;border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-primary-500);border-radius:50%;animation:zplSpin .8s linear infinite}@keyframes zplSpin{to{transform:rotate(360deg)}}.zpl-modal__error{color:var(--color-danger-500);font-size:13px;text-align:center;padding:24px}.zpl-modal__placeholder{color:var(--color-text-tertiary);font-size:13px}.zpl-modal__print-section{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--color-border-soft);background:var(--color-bg-secondary);flex-shrink:0;gap:12px}.zpl-modal__print-printer{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-secondary);min-width:0}.zpl-modal__print-label{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-primary)}.zpl-modal__btn--print{background:var(--color-success-500);color:#fff;border-color:var(--color-success-500);flex-shrink:0}.zpl-modal__btn--print:hover{background:#2eaf6b;border-color:#2eaf6b;transform:translateY(-1px)}.zpl-modal__btn--print:disabled{opacity:.5;cursor:default}.zpl-modal__print-result{padding:10px 18px;font-size:12px;font-weight:600;flex-shrink:0}.zpl-modal__print-result--ok{background:var(--color-success-bg);color:var(--color-success-500);border-top:1px solid var(--color-success-border)}.zpl-modal__print-result--err{background:var(--color-danger-bg);color:var(--color-danger-500);border-top:1px solid var(--color-danger-border)}.zpl-type-manage{display:flex;flex-direction:column;height:100%;gap:12px;padding:14px;overflow:hidden}.ztm-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0}.ztm-kicker,.ztm-panel__eyebrow{margin:0 0 3px;color:var(--color-primary-500);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ztm-hero h1,.ztm-panel h2{margin:0;color:var(--color-text-primary);letter-spacing:0}.ztm-hero h1{font-size:22px}.ztm-panel h2{font-size:15px}.ztm-hero__stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ztm-hero__stats span{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 11px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:#ffffff8c;color:var(--color-text-secondary);font-size:12px;font-weight:700;box-shadow:var(--shadow-xs)}.ztm-hero__stats strong{color:var(--color-text-primary)}.ztm-search{display:grid;grid-template-columns:190px 190px minmax(220px,1fr) auto;align-items:end;gap:12px;padding:14px;flex-shrink:0}.ztm-field{display:flex;flex-direction:column;gap:6px;min-width:0}.ztm-field label{color:var(--color-text-secondary);font-size:12px;font-weight:800}.ztm-field input,.ztm-field select{width:100%;height:34px;border:1px solid rgba(203,213,225,.9);border-radius:6px;background:#ffffffe0;color:var(--color-text-primary);padding:0 10px;outline:none}.ztm-field input:focus,.ztm-field select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-ring)}.ztm-workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;overflow:hidden}.ztm-panel{min-height:0;overflow:hidden}.ztm-panel--grid{display:flex;flex-direction:column}.ztm-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(226,232,240,.65);background:#f8fafca6}.ztm-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.ztm-actions .btn-outline:disabled{opacity:.45;cursor:not-allowed;transform:none}.ztm-table-wrap{flex:1;overflow:auto}.ztm-grid{width:max-content;min-width:100%;border-collapse:collapse}.ztm-grid thead{position:sticky;top:0;z-index:2}.ztm-grid th{height:34px;padding:0 10px;border-bottom:1px solid rgba(203,213,225,.9);border-right:1px solid rgba(226,232,240,.75);background:#f1f5f9f5;color:var(--color-text-secondary);font-size:11px;font-weight:800;white-space:nowrap;text-align:center}.ztm-grid td{height:38px;padding:5px 7px;border-bottom:1px solid rgba(226,232,240,.75);border-right:1px solid rgba(226,232,240,.6);background:#ffffff8c;white-space:nowrap}.ztm-grid tbody tr:hover td,.ztm-grid__row--selected td{background:#eef1ffe6}.ztm-grid input,.ztm-grid select{width:100%;min-width:110px;height:28px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--color-text-primary);padding:0 6px;font-size:12px;outline:none}.ztm-grid input:focus,.ztm-grid select:focus{border-color:var(--color-primary-500);background:var(--color-bg-surface);box-shadow:0 0 0 2px var(--color-primary-ring)}.ztm-grid__check{width:38px;min-width:38px;text-align:center}.ztm-grid__check input{min-width:0;width:15px;height:15px;accent-color:var(--color-primary-500);cursor:pointer}.ztm-grid__num{max-width:72px;min-width:72px;text-align:right}.ztm-grid__code{min-width:210px;font-family:var(--font-mono)}.ztm-grid__meta{display:block;font-size:11px;color:var(--color-text-primary)}.ztm-grid__meta--muted{margin-top:2px;color:var(--color-text-tertiary)}.ztm-grid__empty{height:88px;text-align:center;color:var(--color-text-tertiary)}.ztm-preview{display:flex;flex-direction:column}.ztm-preview__label{margin:16px;min-height:230px;padding:18px;border:1px solid rgba(203,213,225,.9);border-radius:8px;background:linear-gradient(rgba(15,23,42,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.04) 1px,transparent 1px),#fff;background-size:18px 18px;box-shadow:inset 0 0 0 1px #ffffffb3}.ztm-preview__field{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed rgba(148,163,184,.45);font-size:12px}.ztm-preview__field span{color:var(--color-text-tertiary)}.ztm-preview__field strong{color:var(--color-text-primary);text-align:right}.ztm-preview__code{flex:1;min-height:0;margin:0 16px 16px;overflow:auto;border-radius:8px;border:1px solid rgba(15,23,42,.1);background:#0f172aeb;color:#dbeafe;font-family:var(--font-mono);font-size:11px;line-height:1.55;padding:12px}@media(max-width:1180px){.ztm-workspace{grid-template-columns:1fr}.ztm-preview{min-height:320px}}@media(max-width:860px){.ztm-search{grid-template-columns:1fr 1fr}.ztm-field--wide,.ztm-search .btn-red{grid-column:span 2}}.ztm-panel__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:12px;overflow:hidden}.ztm-panel__body>.ui-dg__wrap{flex:1 1 auto;height:100%;min-height:0}.ztm-cell-input{width:100%;height:28px;padding:0 8px;border:1px solid transparent!important;background:transparent!important;border-radius:6px!important;font-family:var(--font-sans);font-size:12px;color:var(--color-text-primary);outline:none;transition:background .16s,border-color .16s,box-shadow .16s}.ztm-cell-input:hover{background:var(--color-bg-surface)!important;border-color:var(--color-border-default)!important}.ztm-cell-input:focus{background:var(--color-bg-tertiary)!important;border-color:var(--color-primary-500)!important;box-shadow:0 0 0 2px var(--color-primary-ring)!important}.ztm-cell-input--num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ztm-cell-input--code{font-family:var(--font-mono);font-size:11.5px;color:var(--color-primary-500)}.ztm-cell-input[type=number]::-webkit-outer-spin-button,.ztm-cell-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ztm-cell-input[type=number]{-moz-appearance:textfield}.ztm-cell-input,select.ztm-cell-input{background-image:var(--select-chevron)!important;background-repeat:no-repeat!important;background-position:right 6px center!important;background-size:12px 12px!important}input.ztm-cell-input{background-image:none!important;padding-right:8px!important}select.ztm-cell-input{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:24px!important;cursor:pointer}.ztm-meta{display:inline-flex;flex-direction:column;gap:1px;text-align:left;line-height:1.3}.ztm-meta__at{font-size:11px;color:var(--color-text-secondary);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ztm-meta__by{font-size:10px;color:var(--color-text-tertiary);font-weight:600}.ztm-hero__stats .ui-badge strong{font-size:12px;font-weight:800;margin-right:3px}.ztm-bold{font-weight:700;color:var(--color-text-primary)}.ztm-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ztm-code{font-size:11.5px;color:var(--color-primary-500);background:var(--color-primary-soft);padding:2px 6px;border-radius:6px;border:1px solid var(--color-primary-ring)}.ztm-row-actions{display:inline-flex;align-items:center;gap:6px}.ztm-delete-summary{display:flex;flex-direction:column;gap:14px;font-size:13px}.ztm-delete-summary p{margin:0;color:var(--color-text-secondary);line-height:1.5}.ztm-delete-summary__dl{margin:0;display:grid;grid-template-columns:90px 1fr;gap:8px 14px;align-items:baseline;background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:12px;padding:14px 16px}.ztm-delete-summary__dl dt{font-size:10px;font-weight:800;color:var(--color-text-tertiary);letter-spacing:.1em;text-transform:uppercase}.ztm-delete-summary__dl dd{margin:0;font-size:12.5px;color:var(--color-text-primary);word-break:break-all}.label-print{display:flex;flex-direction:column;height:100%;gap:12px;padding:14px;overflow:hidden}.lp-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0}.lp-kicker,.lp-section__eyebrow{margin:0 0 3px;color:var(--color-primary-500);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lp-hero h1,.lp-section h2,.lp-preview h2{margin:0;color:var(--color-text-primary);letter-spacing:0}.lp-hero h1{font-size:22px}.lp-section h2,.lp-preview h2{font-size:15px}.lp-ready{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border-radius:999px;background:#ffffff9e;border:1px solid rgba(255,255,255,.75);color:var(--color-text-secondary);font-size:12px;font-weight:800}.lp-ready__dot{width:8px;height:8px;border-radius:50%;background:var(--color-warning-500)}.lp-ready--ok .lp-ready__dot{background:var(--color-success-500)}.lp-search{display:grid;grid-template-columns:170px 180px 230px minmax(80px,1fr) auto;align-items:end;gap:12px;padding:14px;flex-shrink:0}.lp-field{display:flex;flex-direction:column;gap:6px;min-width:0}.lp-field label{color:var(--color-text-secondary);font-size:12px;font-weight:800}.required{color:var(--color-danger-500);margin-right:3px}.lp-field input,.lp-field select{height:34px;width:100%;border:1px solid rgba(203,213,225,.9);border-radius:6px;background:#ffffffe0;color:var(--color-text-primary);padding:0 10px;outline:none}.lp-field input:focus,.lp-field select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-ring)}.lp-field--copies input{text-align:right}.lp-search__actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}.lp-search__actions .btn-red:disabled{opacity:.45;cursor:not-allowed;transform:none}.lp-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;flex-shrink:0}.lp-metric{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:12px 16px}.lp-metric span{color:var(--color-text-secondary);font-size:12px;font-weight:800}.lp-metric strong{color:var(--color-text-primary);font-size:24px;line-height:1}.lp-metric__danger{color:var(--color-danger-500)!important}.lp-workspace{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;min-height:0;overflow:hidden}.lp-main{min-height:0;display:grid;grid-template-rows:minmax(190px,.8fr) minmax(250px,1.2fr);gap:12px;overflow:hidden}.lp-section,.lp-preview{display:flex;flex-direction:column;overflow:hidden;min-height:0}.lp-section__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid rgba(226,232,240,.65);background:#f8fafca6;flex-shrink:0}.lp-section__count{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary-600);font-size:12px;font-weight:800}.lp-table-wrap{flex:1;overflow:auto}.lp-table{width:max-content;min-width:100%;border-collapse:collapse}.lp-table thead{position:sticky;top:0;z-index:2}.lp-table th{height:34px;padding:0 10px;border-bottom:1px solid rgba(203,213,225,.9);border-right:1px solid rgba(226,232,240,.75);background:#f1f5f9f5;color:var(--color-text-secondary);font-size:11px;font-weight:800;white-space:nowrap;text-align:center}.lp-table td{height:36px;padding:0 10px;border-bottom:1px solid rgba(226,232,240,.75);border-right:1px solid rgba(226,232,240,.6);background:#ffffff8c;color:var(--color-text-primary);font-size:12px;white-space:nowrap;text-align:center}.lp-table tbody tr:hover td,.lp-table__row--selected td{background:#eef1ffe6}.lp-table__check{width:38px;min-width:38px}.lp-table__check input{width:15px;height:15px;accent-color:var(--color-primary-500);cursor:pointer}.lp-table__code{font-family:var(--font-mono);text-align:left!important}.lp-status{display:inline-flex;align-items:center;justify-content:center;min-width:62px;height:22px;border-radius:999px;padding:0 8px;font-size:11px;font-weight:800}.lp-status--검증완료{background:var(--color-success-bg);color:#047857;border:1px solid var(--color-success-border)}.lp-status--대기{background:var(--color-warning-bg);color:#a16207;border:1px solid var(--color-warning-border)}.lp-status--오류{background:var(--color-danger-bg);color:var(--color-danger-500);border:1px solid var(--color-danger-border)}.lp-preview__label{margin:16px;min-height:210px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto 1fr;gap:8px 16px;align-content:start;padding:18px;border:1px solid rgba(203,213,225,.9);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-primary)}.lp-preview__brand{grid-column:1 / -1;font-size:26px;font-weight:900;letter-spacing:0}.lp-preview__bar{grid-column:1 / -1;font-family:var(--font-mono);font-size:24px;letter-spacing:2px}.lp-preview__label strong{font-size:18px}.lp-preview__qr{grid-column:2;grid-row:3 / span 2;display:grid;place-items:center;width:72px;height:72px;border:8px solid var(--color-text-primary);font-size:16px;font-weight:900}.lp-preview__detail{display:grid;grid-template-columns:88px 1fr;gap:8px 10px;margin:0 16px 14px;padding:12px;border-radius:8px;background:#f8fafcc7;border:1px solid rgba(226,232,240,.85);font-size:12px}.lp-preview__detail span{color:var(--color-text-tertiary);font-weight:800}.lp-preview__detail strong{color:var(--color-text-primary)}.lp-preview__code{flex:1;min-height:0;margin:0 16px 16px;overflow:auto;border-radius:8px;border:1px solid rgba(15,23,42,.1);background:#0f172aeb;color:#dbeafe;font-family:var(--font-mono);font-size:11px;line-height:1.55;padding:12px}@media(max-width:1180px){.lp-search{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-search__actions{grid-column:1 / -1}.lp-workspace{grid-template-columns:1fr}.lp-preview{min-height:430px}}@media(max-width:760px){.lp-search,.lp-summary{grid-template-columns:1fr}}.lp-section__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:12px;overflow:hidden}.lp-section__body>.ui-dg__wrap{flex:1 1 auto;height:100%;min-height:0;width:100%}.lp-search__actions{flex-wrap:nowrap}.lp-search__actions>.ui-btn{flex:0 0 auto}.lp-mono{font-family:var(--font-mono);font-size:11.5px;color:var(--color-text-primary)}.lp-row--selected>td{background:var(--color-primary-soft)!important;color:var(--color-text-primary)}.cc-page{display:flex;gap:16px;height:100%;overflow:hidden;flex-direction:column;padding:14px}.cc-mono{font-family:var(--font-mono)}.cc-bold{font-weight:700}.cc-desc{display:inline-block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary)}.cc-meta{display:inline-flex;flex-direction:column;gap:1px;text-align:left}.cc-meta__by{font-size:11px;color:var(--color-text-secondary);font-weight:600}.cc-meta__at{font-size:10px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.cc-row-actions{display:inline-flex;align-items:center;gap:6px}.cc-panel__body{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px;overflow:hidden}.cc-panel__body>.ui-dg__wrap{flex:1;min-height:0}.cc-panel{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:16px;box-shadow:0 10px 28px #0f172a12}.cc-panel--master{flex:0 0 44%}.cc-panel--detail{flex:1}.cc-panel__header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-default)}.cc-panel__title{margin:0;font-size:16px;font-weight:900;color:var(--color-text-primary);display:flex;align-items:center;gap:8px}.cc-panel__subtitle{margin:5px 0 0;color:var(--color-text-tertiary);font-weight:750;font-size:12px}.cc-panel__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.cc-icon{flex-shrink:0}.cc-table__actions .cc-table-action{height:30px!important;min-height:30px!important;min-width:0!important;padding:0 12px!important;font-size:12px!important;border-radius:var(--btn-radius)!important;gap:4px}.btn-outline--danger{color:var(--color-danger-500);border-color:var(--color-danger-border)}.btn-outline--danger:hover:not(:disabled){color:var(--color-danger-500);border-color:var(--color-danger-500);background:var(--color-danger-bg)}.cc-table-wrap{flex:1;overflow-y:auto;overflow-x:hidden;padding:0;background:var(--color-bg-surface);margin:12px;border-radius:12px;border:1px solid var(--color-border-default);box-shadow:inset 0 1px 2px #0f172a08}.cc-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.cc-table th,.cc-table td{padding:11px 12px;font-size:12px;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;vertical-align:middle;border-bottom:1px solid var(--color-border-soft)}.cc-table th{position:sticky;top:0;z-index:2;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:900;text-align:left;line-height:1.25}.cc-table tbody tr{cursor:pointer;transition:all .2s}.cc-table tbody tr:hover{background:var(--color-bg-secondary)}.cc-row--active{background:#eef4ff!important;box-shadow:inset 5px 0 #2f5cff}.cc-row--active td{font-weight:600;color:#1d3fa8}.badge{padding:4px 10px;border-radius:12px;font-size:11px;font-weight:700;display:inline-block;line-height:1}.badge-success{background:#10b98126;color:#059669;border:1px solid rgba(16,185,129,.3)}.badge-danger{background:#ef444426;color:#dc2626;border:1px solid rgba(239,68,68,.3)}.badge-muted{background:var(--color-bg-secondary);color:var(--color-text-tertiary);border:1px solid var(--color-border-strong)}.cc-table__desc{line-height:1.45}.cc-table__meta{color:var(--color-text-tertiary);font-size:11px!important;line-height:1.35}.cc-table__value{line-height:1.35}.cc-table__actions,.cc-var-summary{display:flex;align-items:center;gap:6px;min-width:0}.cc-table__actions{justify-content:center;flex-wrap:nowrap;white-space:nowrap}.cc-var-summary strong{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:7px;background:#111827;color:var(--color-text-inverse);font-size:12px;font-weight:900}.cc-var-chip{display:inline-flex;align-items:center;max-width:100%;min-height:22px;padding:3px 7px;border-radius:7px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:10px;font-weight:800;line-height:1.2}.cc-var-summary{flex-wrap:wrap}.cc-panel--master .cc-table th:nth-child(1),.cc-panel--master .cc-table td:nth-child(1){width:12%}.cc-panel--master .cc-table th:nth-child(2),.cc-panel--master .cc-table td:nth-child(2){width:10%}.cc-panel--master .cc-table th:nth-child(3),.cc-panel--master .cc-table td:nth-child(3){width:30%}.cc-panel--master .cc-table th:nth-child(4),.cc-panel--master .cc-table td:nth-child(4),.cc-panel--master .cc-table th:nth-child(5),.cc-panel--master .cc-table td:nth-child(5),.cc-panel--master .cc-table th:nth-child(6),.cc-panel--master .cc-table td:nth-child(6),.cc-panel--master .cc-table th:nth-child(7),.cc-panel--master .cc-table td:nth-child(7){width:6%;text-align:center}.cc-panel--master .cc-table th:nth-child(8),.cc-panel--master .cc-table td:nth-child(8){width:14%}.cc-panel--master .cc-table th:nth-child(9),.cc-panel--master .cc-table td:nth-child(9){width:10%}.cc-table--detail th,.cc-table--detail td{padding:10px 9px;font-size:11px}.cc-table--detail th:nth-child(1),.cc-table--detail td:nth-child(1){width:10%}.cc-table--detail th:nth-child(2),.cc-table--detail td:nth-child(2){width:8%}.cc-table--detail th:nth-child(3),.cc-table--detail td:nth-child(3){width:10%}.cc-table--detail th:nth-child(4),.cc-table--detail td:nth-child(4){width:4%;text-align:center}.cc-table--detail th:nth-child(5),.cc-table--detail td:nth-child(5){width:11%}.cc-table--detail th:nth-child(6),.cc-table--detail td:nth-child(6){width:21%}.cc-table--detail th:nth-child(7),.cc-table--detail td:nth-child(7),.cc-table--detail th:nth-child(8),.cc-table--detail td:nth-child(8),.cc-table--detail th:nth-child(9),.cc-table--detail td:nth-child(9){width:5%;text-align:center}.cc-table--detail th:nth-child(10),.cc-table--detail td:nth-child(10){width:9%}.cc-table--detail th:nth-child(11),.cc-table--detail td:nth-child(11){width:12%}.font-mono{font-family:var(--font-mono, "JetBrains Mono", monospace)}.font-bold{font-weight:600}.text-center{text-align:center}.text-muted{color:var(--color-text-tertiary)}.cc-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;z-index:1000;opacity:0;pointer-events:none;transition:opacity .22s ease}.cc-drawer-backdrop--open{opacity:1;pointer-events:auto}.cc-drawer{position:fixed;top:12px;right:12px;bottom:12px;width:min(780px,calc(100vw - 24px));background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:18px;box-shadow:-18px 0 48px #0f172a38;z-index:1001;transform:translate(calc(100% + 18px));transition:transform .24s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;overflow:hidden}.cc-drawer--open{transform:translate(0)}.cc-drawer__header{padding:22px 24px 18px;border-bottom:1px solid var(--color-border-default);display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:var(--color-bg-surface);flex:0 0 auto}.cc-drawer__title{margin:4px 0 0;font-size:21px;font-weight:900;color:var(--color-text-primary);letter-spacing:0}.cc-drawer__eyebrow{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;background:#eef2ff;color:var(--color-primary-500);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.cc-drawer__close{width:34px;height:34px;background:#ffffffc7;border:1px solid rgba(203,213,225,.9);border-radius:8px;cursor:pointer;color:var(--color-text-tertiary);display:flex;align-items:center;justify-content:center;padding:0;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}.cc-drawer__close:hover{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:#ef4444;transform:translateY(-1px)}.cc-drawer__body{padding:20px 22px;overflow-y:auto;flex:1;min-height:0;display:flex;flex-direction:column;gap:14px;background:var(--color-bg-secondary);overscroll-behavior:contain}.cc-drawer__section{border:1px solid var(--color-border-default);border-radius:14px;background:var(--color-bg-surface);overflow:visible;box-shadow:0 1px 2px #0f172a0a;flex:0 0 auto}.cc-drawer__section-head{display:flex;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--color-border-default);background:#fbfcfe}.cc-drawer__step{width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);color:var(--color-text-inverse);font-size:12px;font-weight:900;flex-shrink:0}.cc-drawer__section-head h3{margin:0;color:var(--color-text-primary);font-size:14px;font-weight:900}.cc-drawer__section-head p{margin:3px 0 0;color:var(--color-text-tertiary);font-size:12px;font-weight:600;line-height:1.35}.cc-drawer__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px}.cc-drawer__grid--compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cc-drawer__field{display:flex;flex-direction:column;gap:7px;min-width:0}.cc-drawer__field--full{grid-column:1 / -1}.cc-drawer__field span{color:var(--color-text-secondary);font-size:12px;font-weight:900}.cc-drawer__field input,.cc-drawer__field select{width:100%;height:38px;padding:0 11px;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:13px;font-weight:650;outline:none}.cc-drawer__field input:disabled,.cc-drawer__field select:disabled{background:#edf2f7;color:var(--color-text-tertiary);cursor:not-allowed}.cc-drawer__field input::placeholder{color:var(--color-text-tertiary)}.cc-drawer__field input:focus,.cc-drawer__field select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #4f6af629}.cc-toggle-field{justify-content:flex-end}.cc-toggle{width:100%;height:38px;padding:0 10px;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-bg-secondary);color:var(--color-text-tertiary);display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;font-weight:900;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.cc-toggle:hover{border-color:var(--color-text-tertiary);background:var(--color-bg-surface)}.cc-toggle:focus-visible{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px #4f6af629}.cc-toggle--on{border-color:var(--color-primary-500);background:#eef2ff;color:var(--color-primary-500)}.cc-toggle__track{position:relative;width:44px;height:24px;border-radius:999px;background:var(--color-border-strong);transition:background .16s ease;flex:0 0 auto}.cc-toggle--on .cc-toggle__track{background:#4f6af6}.cc-toggle__thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--color-bg-surface);box-shadow:0 1px 3px #0f172a3d;transition:transform .16s ease}.cc-toggle--on .cc-toggle__thumb{transform:translate(20px)}.cc-toggle__text{min-width:18px;text-align:center;font-size:13px;letter-spacing:0}.cc-drawer__footer{padding:16px 22px;border-top:1px solid var(--color-border-default);display:flex;justify-content:flex-end;gap:10px;background:var(--color-bg-surface);flex:0 0 auto}.cc-drawer__footer .btn-outline,.cc-drawer__footer .btn-red{min-width:104px}@media(max-width:640px){.cc-drawer{top:0;right:0;bottom:0;width:100vw;border-radius:0}.cc-drawer__grid,.cc-drawer__grid--compact{grid-template-columns:1fr}.cc-drawer__field--full{grid-column:auto}}.btm-page{--btm-text: var(--color-text-primary);--btm-heading: var(--color-text-primary);--btm-muted: var(--color-text-tertiary);--btm-soft: var(--color-text-tertiary);--btm-blue: var(--color-primary-500);--btm-blue-text: var(--color-primary-500);--btm-blue-bg: var(--color-primary-soft);--btm-table-head: var(--color-bg-tertiary);display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;height:100%;overflow:hidden;padding:14px;color:var(--btm-text)}.btm-nav,.btm-panel{min-height:0;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:14px;box-shadow:0 10px 28px #0f172a12;overflow:hidden}.btm-nav{display:flex;flex-direction:column}.btm-nav__head{padding:17px 16px 13px;border-bottom:1px solid var(--color-border-default);background:var(--color-bg-secondary)}.btm-nav__head h2,.btm-panel__title{display:flex;align-items:center;gap:8px;margin:0;color:var(--color-text-primary);font-size:16px;font-weight:900;letter-spacing:0}.btm-nav__head span{display:block;margin-top:5px;color:var(--color-text-tertiary);font-size:12px;font-weight:800}.btm-nav__items{flex:1;min-height:0;overflow-y:auto;padding:10px}.btm-nav__item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:48px;margin-bottom:6px;padding:10px 11px;border:1px solid var(--color-border-default);border-radius:9px;background:var(--color-bg-surface);color:var(--color-text-secondary);text-align:left;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease}.btm-nav__item:hover{background:var(--color-bg-secondary);border-color:var(--color-border-strong);transform:translateY(-1px)}.btm-nav__item--active{background:#f4f7ff;border-color:var(--color-primary-500);box-shadow:inset 4px 0 #4f6af6}.btm-nav__item strong{display:block;min-width:0;color:var(--color-text-primary);font-size:12px;font-weight:900;line-height:1.28;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btm-nav__item span{display:inline-flex;align-items:center;justify-content:center;min-width:50px;min-height:24px;padding:0 8px;border:1px solid var(--color-border-default);border-radius:999px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:900;white-space:nowrap}.btm-nav__item--active span{border-color:#4f6af652;background:#eef2ff;color:var(--color-primary-500)}.btm-panel{display:flex;flex-direction:column}.btm-panel__header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 20px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-default)}.btm-panel__subtitle{margin:5px 0 0;color:var(--color-text-tertiary);font-size:12px;font-weight:750}.btm-panel__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.btm-icon{flex:0 0 auto}.btm-table-wrap{flex:1;min-height:0;margin:12px;overflow:auto;border:1px solid var(--color-border-default);border-radius:12px;background:var(--color-bg-surface)}.btm-table{width:100%;min-width:980px;table-layout:fixed;border-collapse:separate;border-spacing:0}.btm-table th,.btm-table td{padding:11px 12px;border-bottom:1px solid var(--color-border-soft);color:var(--color-text-secondary);font-size:12px;vertical-align:middle;overflow-wrap:anywhere;word-break:keep-all}.btm-table th{position:sticky;top:0;z-index:2;background:var(--color-bg-secondary);color:var(--color-text-secondary);text-align:left;font-size:11px;font-weight:900}.btm-table th:last-child{right:0;z-index:3;box-shadow:-1px 0 #e2e8f0}.btm-table td:last-child{position:sticky;right:0;z-index:1;background:var(--color-bg-surface);box-shadow:-1px 0 #edf2f7}.btm-table tbody tr:hover{background:var(--color-bg-secondary)}.btm-table tbody tr:hover td:last-child{background:var(--color-bg-secondary)}.btm-row--selected{background:#eef4ff!important;box-shadow:inset 5px 0 #4f6af6}.btm-row--selected td{color:#1d3fa8}.btm-row--selected td:last-child{background:#eef4ff}.btm-row-detail td{padding:0;background:#fbfcff;border-bottom:1px solid var(--color-border-default)}.btm-row-detail__box{margin:0;padding:12px 14px 14px;border-left:5px solid var(--color-primary-500);background:linear-gradient(180deg,#fbfcff,#f8fafc)}.btm-row-detail__head{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:var(--color-text-primary);font-size:12px;font-weight:900}.btm-row-detail__head .btm-icon{color:#10b981}.btm-row-detail__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.btm-row-detail__item{min-width:0;min-height:48px;padding:8px 10px;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-surface)}.btm-row-detail__item--pk{border-color:#4f6af659;background:#eef2ff}.btm-row-detail__item em,.btm-row-detail__item strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btm-row-detail__item em{color:var(--color-text-tertiary);font-style:normal;font-size:10px;font-weight:900}.btm-row-detail__item strong{margin-top:4px;color:var(--color-text-primary);font-size:12px;font-weight:900}.btm-row-detail__item--pk strong{color:#1d3fa8;font-family:var(--font-mono, monospace)}.btm-table__pk{color:#1d3fa8!important;font-family:var(--font-mono, monospace);font-weight:800}.btm-table__meta{color:var(--color-text-tertiary)!important;font-size:11px!important;line-height:1.35}.btm-table__actions{display:flex;justify-content:center;gap:6px;white-space:nowrap}.btm-table__actions .btm-table-action{height:30px!important;min-height:30px!important;min-width:0!important;padding:0 12px!important;font-size:12px!important;border-radius:var(--btn-radius)!important;gap:4px}.btm-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:22px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:900;line-height:1}.btm-badge--on{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:#059669}.btm-badge--off,.btm-badge--plain{background:var(--color-bg-secondary);border:1px solid var(--color-border-strong);color:var(--color-text-tertiary)}.btm-empty{height:180px;color:var(--color-text-tertiary)!important;text-align:center;font-weight:800}.btm-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a6b;opacity:0;pointer-events:none;transition:opacity .22s ease}.btm-drawer-backdrop--open{opacity:1;pointer-events:auto}.btm-drawer{position:fixed;top:12px;right:12px;bottom:12px;z-index:1001;display:flex;flex-direction:column;width:min(820px,calc(100vw - 24px));overflow:hidden;background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:18px;box-shadow:-18px 0 48px #0f172a38;transform:translate(calc(100% + 18px));transition:transform .24s cubic-bezier(.2,.8,.2,1)}.btm-drawer--open{transform:translate(0)}.btm-drawer__header{display:flex;justify-content:space-between;gap:16px;padding:22px 24px 18px;border-bottom:1px solid var(--color-border-default);background:var(--color-bg-surface)}.btm-drawer__eyebrow{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:6px;background:#eef2ff;color:var(--color-primary-500);font-size:11px;font-weight:900;letter-spacing:.08em}.btm-drawer__header h2{margin:5px 0 0;color:var(--color-text-primary);font-size:21px;font-weight:900;letter-spacing:0}.btm-drawer__close{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(203,213,225,.9);border-radius:8px;background:#ffffffc7;color:var(--color-text-tertiary)}.btm-drawer__close:hover{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:#ef4444}.btm-drawer__body{flex:1;min-height:0;overflow-y:auto;padding:20px 22px}.btm-form-section{overflow:hidden;border:1px solid var(--color-border-default);border-radius:14px;background:var(--color-bg-surface);box-shadow:0 1px 2px #0f172a0a}.btm-form-section__head{display:flex;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--color-border-default);background:#fbfcfe}.btm-form-section__head>span{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--color-bg-tertiary);color:var(--color-text-inverse);flex-shrink:0}.btm-form-section__head h3{margin:0;color:var(--color-text-primary);font-size:14px;font-weight:900}.btm-form-section__head p{margin:3px 0 0;color:var(--color-text-tertiary);font-size:12px;font-weight:650;line-height:1.35}.btm-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}.btm-field{display:flex;flex-direction:column;gap:7px;min-width:0}.btm-field span{display:flex;align-items:center;gap:5px;color:var(--color-text-secondary);font-size:12px;font-weight:900}.btm-field em{display:inline-flex;align-items:center;height:18px;padding:0 5px;border-radius:5px;background:#eef2ff;color:var(--color-primary-500);font-style:normal;font-family:var(--font-mono, monospace);font-size:9px;font-weight:900}.btm-field input,.btm-field select{width:100%;height:38px;padding:0 11px;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:13px;font-weight:650;outline:none}.btm-field input:disabled,.btm-field select:disabled{background:#edf2f7;color:var(--color-text-tertiary);cursor:not-allowed}.btm-field input:focus,.btm-field select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #4f6af629}.btm-drawer__footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--color-border-default);background:var(--color-bg-surface)}.btm-drawer__footer .btn-outline,.btm-drawer__footer .btn-red{min-width:104px}.btm-drawer__footer .btn-red:disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}.btm-nav__head h2,.btm-panel__title,.btm-nav__item strong,.btm-form-section__head h3,.btm-drawer__header h2,.btm-row-detail__head,.btm-row-detail__item strong{color:var(--btm-heading)}.btm-nav__head span,.btm-panel__subtitle,.btm-nav__item span,.btm-table th,.btm-table__meta,.btm-form-section__head p,.btm-field span,.btm-row-detail__item em{color:var(--btm-muted)}.btm-table td{color:var(--btm-text)}.btm-table th{background:var(--btm-table-head)}.btm-nav__item--active{background:var(--btm-blue-bg);border-color:var(--btm-blue);box-shadow:inset 4px 0 0 var(--btm-blue)}.btm-nav__item--active span,.btm-table__pk,.btm-row--selected td,.btm-row-detail__item--pk strong{color:var(--btm-blue-text)!important}.btm-row--selected{background:#f3f6ff!important;box-shadow:inset 5px 0 0 var(--btm-blue)}.btm-row--selected td:last-child{background:#f3f6ff}.btm-row-detail__item--pk{background:var(--btm-blue-bg);border-color:#4a62df47}.btm-badge--on{color:#16785c}.btm-badge--off,.btm-badge--plain{color:var(--btm-muted)}@media(max-width:980px){.btm-page{grid-template-columns:1fr}.btm-nav{min-height:172px}.btm-nav__items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.btm-nav__item{margin-bottom:0}.btm-row-detail__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.btm-page{padding:10px}.btm-panel__header{flex-direction:column}.btm-nav__items,.btm-form-grid,.btm-row-detail__grid{grid-template-columns:1fr}.btm-drawer{top:0;right:0;bottom:0;width:100vw;border-radius:0}}.btm-panel__body{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px;overflow:hidden}.btm-panel__body>.ui-dg__wrap{flex:1;min-height:0}.btm-th-inner{display:inline-flex;align-items:center;gap:6px}.btm-th-flag{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.06em;padding:1px 5px;border-radius:4px;border:1px solid;line-height:1.4}.btm-th-flag--pk{color:var(--color-primary-500);background:var(--color-primary-soft);border-color:var(--color-primary-ring)}.btm-th-flag--nn{color:var(--color-warning-500);background:var(--color-warning-bg);border-color:var(--color-warning-border)}.btm-pk-cell{font-family:var(--font-mono);font-weight:700;color:var(--color-primary-500)}.btm-meta{display:inline-flex;flex-direction:column;gap:1px;text-align:left}.btm-meta__by{font-size:11px;color:var(--color-text-secondary);font-weight:600}.btm-meta__at{font-size:10px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.btm-row-actions{display:inline-flex;align-items:center;gap:6px}.zd{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#f5f7fb;font-family:var(--font-sans);padding:16px;gap:12px}.zd-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid var(--color-border-default);background:var(--color-bg-surface);border-radius:12px;box-shadow:0 4px 16px #1018280d;flex-shrink:0;gap:12px;flex-wrap:wrap}.zd-header-left{display:flex;align-items:center;gap:10px}.zd-logo{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2563eb,#7c3aed);color:var(--color-text-inverse);font-weight:800;font-size:12px;font-family:var(--font-mono)}.zd-title{font-size:16px;font-weight:800;color:var(--color-text-primary)}.zd-subtitle{font-size:12px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.zd-header-right{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.zd-icon{flex-shrink:0}.zd-hbtn{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid rgba(203,213,225,.95);border-radius:7px;background:#ffffffe0;color:var(--color-text-secondary);font-size:12px;font-weight:750;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease,color .16s ease;font-family:var(--font-sans);box-shadow:0 1px 2px #0f172a0d}.zd-hbtn:hover:not(:disabled){border-color:var(--color-text-tertiary);color:var(--color-text-primary);background:var(--color-bg-surface);transform:translateY(-1px);box-shadow:0 2px 6px #0f172a1a}.zd-hbtn:focus-visible,.zd-btab-action:focus-visible,.zd-print-btn:focus-visible,.zd-tpl-save-btn:focus-visible,.zd-prop-act-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-ring)}.zd-hbtn--icon{width:34px;padding:0}.zd-hbtn--accent{background:linear-gradient(180deg,#5b73f7 0%,var(--color-primary-500) 100%);color:var(--color-text-inverse);border-color:#3b50d4a6;box-shadow:0 6px 14px #4f6af62e}.zd-hbtn--accent:hover:not(:disabled){background:linear-gradient(180deg,#6680ff,#4158e4);color:var(--color-text-inverse)}.zd-hselect{min-height:34px;padding:0 34px 0 11px;border:1px solid rgba(203,213,225,.95);border-radius:7px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:12px;cursor:pointer;outline:none;font-family:var(--font-mono)}.zd-sep{width:1px;height:20px;background:var(--color-border-default);margin:0 4px}.zd-body{display:grid;grid-template-columns:280px minmax(560px,1fr) 340px;gap:12px;justify-content:center;flex:1;overflow:hidden;min-height:0}.zd-left,.zd-right{display:flex;flex-direction:column;gap:10px;overflow-y:auto;background:transparent;border:none}.zd-right{border-left:none}.zd-panel{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:12px;box-shadow:0 2px 10px #0f172a0a;padding:0;overflow:hidden}.zd-panel--grow{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.zd-panel-title{font-size:12px;font-weight:700;color:var(--color-text-primary);margin-bottom:0;letter-spacing:.01em;padding:10px 12px;border-bottom:1px solid var(--color-border-default);background:var(--color-bg-secondary)}.zd-palette-group,.zd-label-presets,.zd-label-fields,.zd-elem-list,.zd-prop,.zd-tpl-section-label,.zd-tpl-save,.zd-help{margin-left:10px;margin-right:10px}.zd-palette-group:first-of-type,.zd-label-presets,.zd-elem-list,.zd-prop,.zd-tpl-section-label:first-of-type,.zd-help{margin-top:10px}.zd-label-fields{margin-bottom:10px}.zd-palette-group{margin-bottom:8px}.zd-palette-group-label{font-size:11px;font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.zd-palette-items{display:flex;flex-wrap:wrap;gap:3px}.zd-palette-btn{display:flex;align-items:center;gap:4px;padding:7px 10px;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .12s;font-family:var(--font-sans)}.zd-palette-btn:hover{border-color:#2563eb;color:#2563eb;background:#2563eb0a}.zd-palette-icon{font-size:11px;font-weight:700;font-family:var(--font-mono)}.zd-label-presets{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:10px}.zd-preset-btn{padding:6px 9px;border:1px solid var(--color-border-default);border-radius:7px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:600;cursor:pointer;transition:all .12s;font-family:var(--font-mono)}.zd-preset-btn:hover{border-color:var(--color-text-tertiary);color:var(--color-text-secondary)}.zd-preset-btn--active{border-color:#2563eb;color:#2563eb;background:#2563eb0a}.zd-elem-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.zd-elem-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;cursor:pointer;transition:all .12s;border:1px solid transparent}.zd-elem-item:hover{background:var(--color-bg-secondary)}.zd-elem-item--active{background:#2563eb0a;border-color:#2563eb}.zd-elem-item-name{font-size:12px;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.zd-elem-item-type{font-size:10px;color:var(--color-text-tertiary);font-family:var(--font-mono);text-transform:uppercase;flex-shrink:0;margin-left:4px}.zd-center{display:flex;flex-direction:column;overflow:hidden;min-height:0;gap:10px;width:100%;align-items:center}.zd-canvas-wrap{flex:1;width:100%;overflow:auto;display:flex;align-items:flex-start;justify-content:center;background:#eef2f7;padding:12px;min-height:250px;border-radius:12px;border:1px solid var(--color-border-default);box-shadow:0 2px 10px #0f172a0a}.zd-canvas-inner{padding:6px;background-image:linear-gradient(45deg,#e2e8f0 25%,transparent 25%),linear-gradient(-45deg,#e2e8f0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e2e8f0 75%),linear-gradient(-45deg,transparent 75%,#e2e8f0 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0px;box-shadow:0 4px 24px #0000001f;border-radius:6px;line-height:0;-webkit-user-select:none;user-select:none}.zd-canvas-inner canvas{display:block;border-radius:2px;background:var(--color-bg-surface)}.zd-bottom{flex-shrink:0;height:240px;width:100%;border:1px solid var(--color-border-default);border-radius:12px;display:flex;flex-direction:column;background:var(--color-bg-surface);box-shadow:0 2px 10px #0f172a0a;overflow:hidden}.zd-bottom-tabs{display:flex;align-items:center;border-bottom:1px solid rgba(226,232,240,.62);padding:0 10px;gap:2px;flex-shrink:0}.zd-btab{padding:9px 12px;border:none;background:none;color:var(--color-text-tertiary);font-size:12px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;transition:all .12s;font-family:var(--font-sans)}.zd-btab:hover{color:var(--color-text-secondary)}.zd-btab--active{color:var(--color-primary-500);border-bottom-color:var(--color-primary-500)}.zd-btab-action{min-height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--color-border-default);border-radius:7px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:11px;font-weight:750;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease,color .16s ease;font-family:var(--font-sans);margin-left:4px}.zd-btab-action:hover{border-color:#2563eb;color:#2563eb;background:var(--color-bg-surface);transform:translateY(-1px)}.zd-bottom-body{flex:1;overflow:hidden}.zd-zpl-editor{width:100%;height:100%;padding:12px 14px;border:none;outline:none;resize:none;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--color-text-primary);background:var(--color-bg-surface)}.zd-zpl-editor:focus{background:#fafbfd}.zd-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:zd-fadeIn .15s ease}@keyframes zd-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zd-slideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.zd-modal{width:680px;max-width:92vw;max-height:90vh;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg, 14px);box-shadow:0 4px 12px #0000001a;display:flex;flex-direction:column;animation:zd-slideUp .2s ease;overflow:hidden}.zd-modal-header{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--color-border-default);flex-shrink:0}.zd-modal-title{margin:0;font-size:15px;font-weight:700;color:var(--color-text-primary)}.zd-modal-header-info{font-size:11px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.zd-modal-actions{margin-left:auto;display:flex;align-items:center;gap:4px}.zd-modal-close{width:34px;height:34px;border:1px solid rgba(203,213,225,.9);background:var(--color-bg-surface);border-radius:7px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);font-size:16px;font-weight:700;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}.zd-modal-close:hover{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger-500);transform:translateY(-1px)}.zd-modal-body{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;min-height:300px;background-color:var(--color-bg-secondary);background-image:linear-gradient(45deg,#e2e8f0 25%,transparent 25%),linear-gradient(-45deg,#e2e8f0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e2e8f0 75%),linear-gradient(-45deg,transparent 75%,#e2e8f0 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0px;padding:24px}.zd-modal-preview-wrap{display:flex;align-items:center;justify-content:center}.zd-modal-preview-img{max-width:100%;max-height:65vh;border:1px solid var(--color-border-default);border-radius:6px;box-shadow:0 4px 20px #0000001a;background:var(--color-bg-surface)}.zd-modal-loading{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--color-text-tertiary);font-size:13px}.zd-modal-spinner{width:32px;height:32px;border:3px solid var(--color-border-default);border-top-color:#2563eb;border-radius:50%;animation:zd-spin .7s linear infinite}@keyframes zd-spin{to{transform:rotate(360deg)}}.zd-modal-error{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--color-danger-500);font-size:13px;text-align:center}.zd-modal-error-icon{width:40px;height:40px;border-radius:50%;background:var(--color-danger-bg);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700}.zd-print-area{padding:12px}.zd-print-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.zd-print-btn{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 15px;border:1px solid rgba(59,80,212,.65);border-radius:7px;background:linear-gradient(180deg,#5b73f7 0%,var(--color-primary-500) 100%);color:var(--color-text-inverse);font-size:12px;font-weight:700;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease;white-space:nowrap;font-family:var(--font-sans);box-shadow:0 6px 14px #4f6af62e}.zd-print-btn:hover:not(:disabled){background:linear-gradient(180deg,#6680ff,#4158e4);transform:translateY(-1px)}.zd-print-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.zd-print-msg{padding:8px 12px;border-radius:6px;font-size:12px;font-weight:600;margin-bottom:8px}.zd-print-msg--ok{background:var(--color-success-bg);color:var(--color-success-500)}.zd-print-msg--err{background:var(--color-danger-bg);color:var(--color-danger-500)}.zd-print-hint{font-size:11px;color:var(--color-text-tertiary);line-height:1.5}.zd-prop{padding:0;overflow-y:auto}.zd-prop-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 12px;color:var(--color-text-tertiary);text-align:center;gap:4px}.zd-prop-empty-icon{font-size:28px;opacity:.3}.zd-prop-empty-hint{font-size:10px;line-height:1.5;margin-top:4px}.zd-prop-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--color-border-soft)}.zd-prop-type-badge{padding:2px 8px;border-radius:4px;background:#2563eb0f;color:#2563eb;font-size:11px;font-weight:700}.zd-prop-actions{display:flex;gap:2px}.zd-prop-act-btn{width:28px;height:28px;border:1px solid var(--color-border-default);border-radius:7px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease,color .16s ease}.zd-prop-act-btn .zd-icon{width:14px;height:14px}.zd-prop-act-btn:hover{border-color:var(--color-text-tertiary);color:var(--color-text-primary);background:var(--color-bg-surface);transform:translateY(-1px)}.zd-prop-act-btn--del:hover{border-color:var(--color-danger-border);color:var(--color-danger-500);background:var(--color-danger-bg)}.zd-prop-section{margin-bottom:12px;border:1px solid var(--color-border-default);border-radius:10px;background:var(--color-bg-secondary);padding:10px}.zd-prop-section-title{font-size:11px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:7px}.zd-prop-grid2{display:grid;grid-template-columns:1fr 1fr;gap:4px}.zd-prop-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;gap:6px}.zd-prop-field{display:flex;flex-direction:column}.zd-prop-label{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:4px}.zd-prop-hint{font-size:10px;color:var(--color-text-tertiary);line-height:1.4;padding:2px 0 5px}.zd-val{font-size:10px;font-weight:700}.zd-val--ok{color:var(--color-success-500)}.zd-val--err{color:var(--color-danger-500)}.zd-prop-input{width:100px;padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:12px;font-family:var(--font-mono);outline:none;text-align:right}.zd-prop-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 2px #4f6af626}.zd-prop-select{text-align:left;cursor:pointer}.zd-prop-zpl{display:block;padding:6px 8px;background:var(--color-bg-secondary);border-radius:4px;font-family:var(--font-mono);font-size:10px;color:var(--color-text-secondary);word-break:break-all;line-height:1.5;border:1px solid var(--color-border-soft)}.zd-tpl-section-label{font-size:11px;font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.zd-tpl-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:all .12s;margin-bottom:2px;border:1px solid transparent}.zd-tpl-item:hover{background:var(--color-bg-secondary);border-color:#cbd5e1b3}.zd-tpl-name{font-size:12px;font-weight:600;color:var(--color-text-primary);flex:1}.zd-tpl-desc{font-size:10px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.zd-tpl-del{background:none;border:none;color:var(--color-danger-500);cursor:pointer;font-size:13px;opacity:.4;padding:0 2px}.zd-tpl-del:hover{opacity:1}.zd-tpl-save{display:flex;gap:4px;margin-bottom:6px}.zd-tpl-save-btn{min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 11px;border:1px solid var(--color-border-default);border-radius:7px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:11px;font-weight:750;cursor:pointer;font-family:var(--font-sans);transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease,color .16s ease}.zd-tpl-save-btn:hover{border-color:#2563eb;color:#2563eb;background:var(--color-bg-surface);transform:translateY(-1px)}.zd-empty-hint{font-size:12px;color:var(--color-text-tertiary);text-align:center;padding:10px;font-style:italic}.zd-help{padding:12px;background:#eef2ff;border:1px solid var(--color-primary-ring);border-radius:10px;font-size:12px;line-height:1.6;color:var(--color-text-tertiary)}.zd-help strong{color:var(--color-primary-500)}@media(max-width:1000px){.zd-body{grid-template-columns:220px minmax(420px,1fr) 280px}}@media(max-width:768px){.zd{padding:10px;gap:8px}.zd-header{border-radius:10px;padding:8px 10px}.zd-body{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.zd-left,.zd-right{border:none;border-bottom:1px solid var(--color-border-default)}.zd-center{align-items:stretch}.zd-bottom{height:220px}}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.zpl-tester{--bg: var(--color-bg-page);--s1: var(--color-bg-surface);--s2: var(--color-bg-secondary);--s3: var(--color-bg-tertiary);--bd: var(--color-border-default);--bdh: #CBD5E1;--t1: var(--color-text-primary);--t2: var(--color-text-secondary);--t3: var(--color-text-tertiary);--am: var(--color-success-500);--amd: #059669;--amb: var(--color-success-bg);--rd: var(--color-danger-500);--rdb: var(--color-danger-bg);--yl: var(--color-warning-500);--ylb: var(--color-warning-bg);--bl: var(--color-primary-500);--blb: #EFF6FF;--or: #F97316;height:100%;overflow:hidden;display:flex;flex-direction:column;padding:14px;background:var(--bg);color:var(--t1);font-family:"Manrope",var(--font-sans)}.zpl-tester .badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:14px;font-size:10px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;font-family:DM Mono,monospace}.zpl-tester .badge.on{background:var(--amb);color:var(--am);border:1px solid rgba(16,185,129,.2)}.zpl-tester .badge.off{background:var(--s3);color:var(--t3);border:1px solid var(--bd)}.zpl-tester .grid{display:grid;grid-template-columns:280px 1fr;grid-template-rows:auto 1fr;gap:10px;height:100%;min-height:480px;overflow:hidden}.zpl-tester .card{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:7px;overflow:hidden;box-shadow:0 2px 8px #505a8c0f}.zpl-tester .card-h{padding:6px 10px;border-bottom:1px solid var(--color-border-soft);font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--t3);display:flex;align-items:center;gap:5px;font-family:DM Mono,monospace;background:var(--color-bg-secondary)}.zpl-tester .card-b{padding:8px}.zpl-tester .side{grid-row:1/-1;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.zpl-tester .btn{width:100%;min-height:36px;padding:0 12px;border:1px solid transparent;border-radius:7px;font-family:Manrope,sans-serif;font-size:12px;font-weight:800;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease,color .16s ease;display:flex;align-items:center;justify-content:center;gap:5px}.zpl-tester .btn-go{background:linear-gradient(180deg,#34d399,var(--amd));color:var(--color-text-inverse);border-color:#05966980;box-shadow:0 6px 14px #10b9812e}.zpl-tester .btn-go:hover{transform:translateY(-1px);box-shadow:0 8px 18px #10b98142}.zpl-tester .btn-dc{background:var(--color-bg-surface);color:var(--rd);border:1px solid var(--color-danger-border)}.zpl-tester .btn-dc:hover{background:var(--color-danger-bg);border-color:var(--rd);color:var(--rd);transform:translateY(-1px)}.tester-icon{flex-shrink:0}.zpl-tester .zt-mini-btn,.zpl-tester .zt-action-btn,.zpl-tester .zt-icon-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:5px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease,color .16s ease!important}.zpl-tester .zt-mini-btn:hover:not(:disabled),.zpl-tester .zt-action-btn:hover:not(:disabled),.zpl-tester .zt-icon-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 6px #0f172a1a}.zpl-tester .zt-action-btn{min-height:34px;border-radius:7px!important}.zpl-tester .zt-icon-btn{width:22px;height:22px;border-radius:6px!important}.zpl-tester .tabs{display:flex;border-bottom:1px solid var(--bd)}.zpl-tester .tab{flex:1;padding:5px;text-align:center;font-size:9px;font-weight:600;cursor:pointer;color:var(--t3);border-bottom:2px solid transparent;transition:all .12s;font-family:DM Mono,monospace}.zpl-tester .tab:hover{color:var(--t2)}.zpl-tester .tab.on{color:var(--am);border-bottom-color:var(--am)}.zpl-tester .items{display:flex;flex-direction:column;gap:3px;overflow-y:auto;padding:6px}.zpl-tester .itm{padding:6px 8px;background:var(--s2);border:1px solid transparent;border-radius:5px;cursor:pointer;transition:all .12s}.zpl-tester .itm:hover{border-color:var(--bdh);background:var(--s3)}.zpl-tester .itm.on{border-color:var(--am);background:var(--amb)}.zpl-tester .itm-n{font-size:11px;font-weight:600;color:var(--t1)}.zpl-tester .itm-d{font-size:9px;color:var(--t3)}.zpl-tester .edt{display:flex;flex-direction:column}.zpl-tester .edt-in{flex:1;display:flex;flex-direction:column;padding:8px;overflow:hidden}.zpl-tester .ta{flex:1;width:100%;min-height:80px;background:var(--bg);border:1.5px solid var(--bd);border-radius:5px;padding:10px;color:var(--t1);font-family:DM Mono,monospace;font-size:12px;line-height:1.6;resize:none;outline:none;transition:border-color .15s}.zpl-tester .ta:focus{border-color:var(--am);box-shadow:0 0 0 3px #10b9811a}.zpl-tester .ebar{display:flex;align-items:center;justify-content:space-between;padding-top:6px;gap:6px;flex-wrap:wrap;flex-shrink:0}.zpl-tester .einfo{font-size:10px;color:var(--t3);font-family:DM Mono,monospace;display:flex;align-items:center;gap:6px}.zpl-tester .send{min-height:34px;padding:0 16px;border:1px solid rgba(5,150,105,.5);border-radius:7px;font-family:Manrope,sans-serif;font-size:12px;font-weight:800;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease;display:flex;align-items:center;gap:6px;background:linear-gradient(180deg,#34d399,var(--amd));color:var(--color-text-inverse);white-space:nowrap;box-shadow:0 6px 14px #10b9812e}.zpl-tester .send:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #10b98142}.zpl-tester .send:disabled{opacity:.3;cursor:not-allowed}.zpl-tester .prog{height:3px;background:var(--bd);border-radius:2px;margin-top:5px;overflow:hidden;flex-shrink:0}.zpl-tester .prog-bar{height:100%;background:var(--am);transition:width .15s}.zpl-tester .result-bar{margin-top:6px;padding:8px 10px;border-radius:5px;font-size:11px;font-weight:600;display:flex;flex-direction:column;gap:3px;animation:fadein .3s ease;flex-shrink:0}.zpl-tester .logw{display:flex;flex-direction:column;overflow:hidden}.zpl-tester .logi{flex:1;overflow-y:auto;padding:5px 8px;display:flex;flex-direction:column;gap:1px;background:var(--bg);border-radius:0 0 7px 7px}.zpl-tester .ll{font-family:DM Mono,monospace;font-size:10px;line-height:1.5;animation:fadein .1s ease;display:flex;gap:5px}.zpl-tester .lts{color:var(--t3);flex-shrink:0}.zpl-tester .lm{word-break:break-all}.zpl-tester .ll.info .lm{color:var(--t2)}.zpl-tester .ll.success .lm{color:var(--am)}.zpl-tester .ll.error .lm{color:var(--rd)}.zpl-tester .ll.warn .lm{color:var(--yl)}.zpl-tester .ll.rx .lm{color:var(--bl)}.zpl-tester .clr{display:inline-flex;align-items:center;gap:4px;background:var(--color-bg-surface);border:1px solid var(--bd);color:var(--t3);font-size:9px;cursor:pointer;padding:3px 7px;border-radius:6px;font-family:DM Mono,monospace;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}.zpl-tester .clr:hover{color:var(--rd);border-color:var(--color-danger-border);background:var(--color-danger-bg);transform:translateY(-1px)}.zpl-tester .stoggle{background:none;border:1px solid var(--bd);border-radius:3px;color:var(--t2);font-size:9px;padding:2px 6px;cursor:pointer;font-family:DM Mono,monospace;transition:all .12s}.zpl-tester .stoggle:hover{border-color:var(--am);color:var(--am)}.zpl-tester .stoggle.active{border-color:var(--am);color:var(--am);background:var(--amb)}@media(max-width:720px){.zpl-tester .grid{grid-template-columns:1fr;height:auto}.zpl-tester .side{grid-row:auto}}.rfid{display:flex;height:100%;overflow:hidden;padding:14px;gap:10px;background:var(--color-bg-page)}.rfid-toast{position:fixed;top:16px;right:16px;z-index:10000;padding:10px 18px;border-radius:6px;background:var(--color-success-500);color:var(--color-text-inverse);font-size:13px;font-weight:600;box-shadow:0 4px 16px #00000026;animation:rfidToastIn .3s ease,rfidToastOut .3s ease 2.5s forwards}.rfid-toast--err{background:var(--color-danger-500)}@keyframes rfidToastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes rfidToastOut{0%{opacity:1}to{opacity:0}}.rfid__list{width:260px;flex-shrink:0;border-right:1px solid rgba(255,255,255,.75);display:flex;flex-direction:column;background:#ffffffc7;box-shadow:inset -1px 0 #e2e8f080}.rfid__list-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid var(--color-border-soft)}.rfid__list-title{font-size:14px;font-weight:700;color:var(--color-text-primary);margin:0}.rfid__list-add{width:28px;height:28px;border:1px solid var(--color-border-default);border-radius:6px;background:var(--color-bg-surface);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.rfid__list-add:hover{background:var(--color-bg-tertiary);color:var(--color-primary-500)}.rfid__list-items{flex:1;overflow-y:auto;padding:8px}.rfid__card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;margin-bottom:4px;border:1px solid transparent;transition:all .15s}.rfid__card:hover{background:#f0f2f8a6}.rfid__card--active{background:#eef1ffd9;border-color:var(--color-primary-500)}.rfid__card--disabled{opacity:.5}.rfid__card-icon{color:var(--color-text-tertiary);flex-shrink:0}.rfid__card--active .rfid__card-icon{color:var(--color-primary-500)}.rfid__card-body{flex:1;min-width:0}.rfid__card-name{font-size:13px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rfid__card-meta{font-size:11px;color:var(--color-text-tertiary);margin-top:2px;display:flex;align-items:center;gap:6px}.rfid__card-pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-success-500);animation:rfidPulse 1s ease-in-out infinite}@keyframes rfidPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.rfid__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.rfid__dot--on{background:var(--color-success-500)}.rfid__dot--off{background:var(--color-text-tertiary)}.rfid__mqtt-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid rgba(226,232,240,.6);background:var(--color-bg-secondary);flex-shrink:0;gap:8px;flex-wrap:wrap}.rfid__mqtt-bar-left{display:flex;align-items:center;gap:8px}.rfid__mqtt-bar-right{display:flex;align-items:center;gap:6px}.rfid__mqtt-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.rfid__mqtt-dot--on{background:var(--color-success-500);animation:rfidPulse 1.5s ease-in-out infinite}.rfid__mqtt-dot--wait{background:#f59e0b;animation:rfidPulse .6s ease-in-out infinite}.rfid__mqtt-dot--off{background:var(--color-text-tertiary)}.rfid__mqtt-label{font-size:11px;color:var(--color-text-secondary)}.rfid__mqtt-url-input{height:26px;padding:0 8px;width:220px;border:1px solid var(--color-border-default);border-radius:4px;font-size:11px;background:var(--color-bg-surface);font-family:var(--font-mono, monospace)}.rfid__mqtt-url-input:focus{outline:none;border-color:var(--color-primary-500)}.rfid__btn--xs{height:24px;padding:0 8px;font-size:11px}.rfid__detail{flex:1;overflow:hidden;display:flex;flex-direction:column}.rfid__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-tertiary);gap:8px}.rfid__empty-icon{color:var(--color-text-tertiary);opacity:.3}.rfid__empty h3{margin:0;font-size:15px;color:var(--color-text-secondary)}.rfid__empty p{margin:0;font-size:13px}.rfid__detail-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid rgba(226,232,240,.6);flex-shrink:0;background:var(--color-bg-secondary)}.rfid__detail-title{margin:0;font-size:15px;font-weight:700}.rfid__detail-subtitle{font-size:12px;color:var(--color-text-tertiary);margin-top:2px}.rfid__detail-actions{display:flex;gap:6px;align-items:center}.rfid__stat-bar{display:flex;align-items:center;gap:0;padding:10px 20px;background:var(--color-bg-surface);border-bottom:1px solid rgba(226,232,240,.6);flex-shrink:0}.rfid__stat-item{display:flex;flex-direction:column;align-items:center;padding:0 16px}.rfid__stat-label{font-size:11px;color:var(--color-text-tertiary)}.rfid__stat-value{font-size:20px;font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.rfid__stat-value--queued{color:var(--color-primary-500)}.rfid__stat-value--done{color:var(--color-success-500)}.rfid__stat-sep{width:1px;height:32px;background:var(--color-border-default)}.rfid__stat-spacer{flex:1}.rfid__stat-reading{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--color-success-500)}.rfid__stat-reading-dot{width:8px;height:8px;border-radius:50%;background:var(--color-success-500);animation:rfidPulse 1s ease-in-out infinite}.rfid__tabs{display:flex;border-bottom:1px solid rgba(226,232,240,.6);flex-shrink:0;padding:0 20px;background:var(--color-bg-surface)}.rfid__tab{display:flex;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:600;color:var(--color-text-tertiary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;transition:all .15s}.rfid__tab:hover{color:var(--color-text-primary)}.rfid__tab--active{color:var(--color-primary-500);border-bottom-color:var(--color-primary-500)}.rfid__tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-size:11px;font-weight:700;background:var(--color-primary-500);color:var(--color-text-inverse)}.rfid__tab-badge--neutral{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.rfid__buffer{flex:1;overflow:hidden;display:flex;flex-direction:column}.rfid__buffer-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid rgba(226,232,240,.6);background:var(--color-bg-secondary);flex-shrink:0;gap:8px;flex-wrap:wrap}.rfid__buffer-filters,.rfid__buffer-actions{display:flex;gap:6px;align-items:center}.rfid__filter-select,.rfid__filter-input{height:30px;padding:0 10px;border:1px solid var(--color-border-default);border-radius:4px;font-size:12px;background:var(--color-bg-surface);color:var(--color-text-primary)}.rfid__filter-input{width:160px}.rfid__filter-select:focus,.rfid__filter-input:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-ring)}.rfid__buffer-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-tertiary);gap:10px;padding:40px}.rfid__buffer-empty-icon{opacity:.3}.rfid__buffer-empty p{margin:0;font-size:13px;text-align:center;max-width:360px}.rfid__table-wrap{flex:1;overflow-y:auto}.rfid__table{width:100%;border-collapse:collapse;font-size:12px}.rfid__table thead{position:sticky;top:0;z-index:1;background:var(--color-bg-secondary)}.rfid__table th{padding:8px 12px;text-align:left;font-size:11px;font-weight:700;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border-default);white-space:nowrap}.rfid__table td{padding:6px 12px;border-bottom:1px solid var(--color-border-soft);vertical-align:middle}.rfid__table tr:hover td{background:var(--color-bg-secondary)}.rfid__row--done td{opacity:.5}.rfid__cell-seq{color:var(--color-text-tertiary);width:60px}.rfid__cell-epc{font-family:var(--font-mono, monospace)}.rfid__epc-text{font-size:12px;letter-spacing:.05em}.rfid__cell-ant{color:var(--color-text-secondary);white-space:nowrap}.rfid__cell-time{color:var(--color-text-tertiary);white-space:nowrap;font-size:11px}.rfid__rssi{font-weight:600;font-size:11px}.rfid__rssi--strong{color:#22c55e}.rfid__rssi--mid{color:#f59e0b}.rfid__rssi--weak{color:#ef4444}.rfid__ident-tag{display:inline-block;padding:1px 8px;border-radius:12px;font-size:11px;font-weight:700;border:1px solid}.rfid__ident-unknown{font-size:11px;color:var(--color-text-tertiary)}.rfid-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;white-space:nowrap}.rfid-badge--queued{background:#eff6ff;color:#2563eb;border:1px solid var(--color-primary-ring)}.rfid-badge--proc{background:var(--color-warning-bg);color:var(--color-warning-500);border:1px solid var(--color-warning-border)}.rfid-badge--done{background:#f0fdf4;color:#16a34a;border:1px solid var(--color-success-border)}.rfid__btn-pop{width:24px;height:24px;border:1px solid var(--color-primary-500);border-radius:4px;background:var(--color-primary-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-primary-500);transition:all .15s}.rfid__btn-pop:hover{background:var(--color-primary-500);color:var(--color-text-inverse)}.rfid__rules{flex:1;overflow:hidden;display:flex;flex-direction:column}.rfid__rules-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--color-border-default);flex-shrink:0}.rfid__rules-desc{font-size:12px;color:var(--color-text-tertiary)}.rfid__rules-list{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.rfid__rule-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-surface);box-shadow:0 2px 8px #505a8c0f;transition:box-shadow .15s}.rfid__rule-card:hover{box-shadow:0 4px 16px #505a8c1a}.rfid__rule-color{width:4px;height:36px;border-radius:2px;flex-shrink:0}.rfid__rule-body{flex:1;min-width:0}.rfid__rule-name{font-size:13px;font-weight:700;color:var(--color-text-primary)}.rfid__rule-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}.rfid__rule-chip{font-size:10px;padding:1px 6px;border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border-soft)}.rfid__rule-pattern{font-size:11px;font-family:var(--font-mono, monospace);color:var(--color-text-secondary)}.rfid__rule-priority{font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}.rfid__rule-label-preview{flex-shrink:0}.rfid__rule-actions{display:flex;gap:4px}.rfid__btn-icon{width:28px;height:28px;border:1px solid var(--color-border-default);border-radius:6px;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);transition:all .15s}.rfid__btn-icon:hover{background:var(--color-bg-secondary);color:var(--color-primary-500);border-color:var(--color-primary-500)}.rfid__btn-icon--danger:hover{background:var(--color-danger-bg);color:var(--color-danger-500);border-color:var(--color-danger-500)}.rfid__btn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid var(--color-border-default);background:var(--color-bg-surface);color:var(--color-text-primary);transition:all .15s}.rfid__btn:hover{background:var(--color-bg-secondary);border-color:var(--color-text-tertiary)}.rfid__btn--primary{background:var(--color-primary-500);color:var(--color-text-inverse);border-color:var(--color-primary-500)}.rfid__btn--primary:hover{filter:brightness(1.1)}.rfid__btn--success{background:var(--color-success-500);color:var(--color-text-inverse);border-color:var(--color-success-500)}.rfid__btn--success:hover{filter:brightness(1.1)}.rfid__btn--danger{background:var(--color-danger-500);color:var(--color-text-inverse);border-color:var(--color-danger-500)}.rfid__btn--danger:hover{filter:brightness(1.1)}.rfid__btn--ghost{color:var(--color-text-tertiary)}.rfid__btn--ghost:hover{color:var(--color-danger-500);border-color:var(--color-danger-border);background:var(--color-danger-bg)}.rfid__modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.rfid__modal{width:560px;max-height:85vh;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:10px;box-shadow:0 20px 60px #505a8c2e;display:flex;flex-direction:column}.rfid__modal--sm{width:460px}.rfid__modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--color-border-default)}.rfid__modal-header h3{margin:0;font-size:15px;font-weight:700}.rfid__modal-close{width:30px;height:30px;border:none;background:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary)}.rfid__modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.rfid__modal-body{flex:1;overflow-y:auto;padding:16px 20px}.rfid__modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--color-border-default)}.rfid__form-section{margin-bottom:20px}.rfid__form-section h4{margin:0 0 10px;font-size:13px;font-weight:700;color:var(--color-text-primary);padding-bottom:6px;border-bottom:1px solid var(--color-border-soft)}.rfid__form-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.rfid__form-row label{font-size:12px;font-weight:600;color:var(--color-text-secondary);min-width:120px;text-align:right;white-space:nowrap}.rfid__form-row input,.rfid__form-row select{flex:1;height:32px;padding:0 10px;border:1px solid var(--color-border-default);border-radius:4px;font-size:13px;background:var(--color-bg-surface)}.rfid__form-row input:focus,.rfid__form-row select:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-ring)}.rfid__conn-cards{display:flex;gap:10px}.rfid__conn-card{flex:1;padding:12px;border:2px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .15s}.rfid__conn-card:hover{border-color:#94a3b8cc;background:#f0f2f8a6}.rfid__conn-card--active{border-color:var(--color-primary-500);background:#eef1ffd9;box-shadow:0 0 0 3px #4f6af614}.rfid__conn-card-icon{color:var(--color-text-tertiary)}.rfid__conn-card--active .rfid__conn-card-icon{color:var(--color-primary-500)}.rfid__conn-card-label{font-size:13px;font-weight:700;color:var(--color-text-primary)}.rfid__conn-card-desc{font-size:10px;color:var(--color-text-tertiary);text-align:center}.rfid__toggle{position:relative;display:inline-block;width:40px;height:22px}.rfid__toggle input{opacity:0;width:0;height:0}.rfid__toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--color-border-default);border-radius:22px;transition:.3s}.rfid__toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:var(--color-bg-surface);border-radius:50%;transition:.3s}.rfid__toggle input:checked+.rfid__toggle-slider{background:var(--color-primary-500)}.rfid__toggle input:checked+.rfid__toggle-slider:before{transform:translate(18px)}.ps{display:flex;height:100%;overflow:hidden;padding:14px;gap:10px;background:var(--color-bg-page)}.ps-toast{position:fixed;top:16px;right:16px;z-index:10000;padding:10px 18px;border-radius:6px;background:var(--color-success-500);color:var(--color-text-inverse);font-size:13px;font-weight:600;box-shadow:0 4px 16px #00000026;animation:psToastIn .3s ease}.ps-toast--err{background:var(--color-danger-500)}@keyframes psToastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ps__list{width:280px;flex-shrink:0;border-right:1px solid rgba(255,255,255,.75);display:flex;flex-direction:column;background:#ffffffc7;box-shadow:inset -1px 0 #e2e8f080}.ps__list-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid var(--color-border-soft)}.ps__list-title{font-size:14px;font-weight:700;color:var(--color-text-primary);margin:0}.ps__list-add{width:28px;height:28px;border:1px solid var(--color-border-default);border-radius:6px;background:var(--color-bg-surface);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.ps__list-add:hover{background:var(--color-bg-tertiary);color:var(--color-primary-500)}.ps__list-items{overflow-y:auto;padding:8px}.ps__list-divider{height:1px;background:var(--color-border-default);margin:4px 0;flex-shrink:0}.ps__card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;margin-bottom:4px;border:1px solid transparent;transition:all .15s}.ps__card:hover{background:#f0f2f8a6}.ps__card--active{background:#eef1ffd9;border-color:var(--color-primary-500)}.ps__card--disabled{opacity:.5}.ps__card-icon{color:var(--color-text-tertiary);flex-shrink:0}.ps__card--active .ps__card-icon{color:var(--color-primary-500)}.ps__card-body{flex:1;min-width:0}.ps__card-name{font-size:13px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps__card-meta{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}.ps__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ps__dot--on{background:var(--color-success-500)}.ps__dot--off{background:var(--color-text-tertiary)}.ps__detail{flex:1;overflow-y:auto;padding:0;display:flex;flex-direction:column}.ps__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-tertiary);gap:8px}.ps__empty-icon{color:var(--color-text-tertiary);opacity:.4}.ps__empty h3{margin:0;font-size:15px;color:var(--color-text-secondary)}.ps__empty p{margin:0;font-size:13px}.ps__detail-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid rgba(226,232,240,.6);flex-shrink:0;background:var(--color-bg-secondary)}.ps__detail-title{margin:0;font-size:15px;font-weight:700}.ps__detail-subtitle{font-size:12px;color:var(--color-text-tertiary)}.ps__detail-actions{display:flex;gap:6px}.ps__test-result{padding:10px 20px;font-size:13px;font-weight:600;flex-shrink:0}.ps__test-result--ok{background:var(--color-success-bg);color:var(--color-success-500);border-bottom:1px solid var(--color-success-border)}.ps__test-result--err{background:var(--color-danger-bg);color:var(--color-danger-500);border-bottom:1px solid var(--color-danger-border)}.ps__info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px;flex:1}.ps__info-section{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #505a8c0f}.ps__info-section-title{display:flex;align-items:center;gap:6px;margin:0;padding:6px 10px;border-bottom:1px solid rgba(226,232,240,.6);font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-text-tertiary);font-family:var(--font-mono);background:var(--color-bg-secondary)}.ps__info-rows{display:flex;flex-direction:column;padding:8px 10px}.ps__info-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid rgba(226,232,240,.5)}.ps__info-row:last-child{border-bottom:none}.ps__info-label{font-size:10.5px;color:var(--color-text-secondary);flex-shrink:0;min-width:80px}.ps__info-value{font-size:11px;font-weight:600;color:var(--color-text-primary);text-align:right}.ps__modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.ps__modal{width:560px;max-height:85vh;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:10px;box-shadow:0 20px 60px #505a8c2e;display:flex;flex-direction:column}.ps__modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--color-border-default)}.ps__modal-header h3{margin:0;font-size:15px;font-weight:700}.ps__modal-close{width:30px;height:30px;border:none;background:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary)}.ps__modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.ps__modal-body{flex:1;overflow-y:auto;padding:16px 20px}.ps__modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--color-border-default)}.ps__form-section{margin-bottom:20px}.ps__form-section h4{margin:0 0 10px;font-size:13px;font-weight:700;color:var(--color-text-primary);padding-bottom:6px;border-bottom:1px solid var(--color-border-soft)}.ps__form-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ps__form-row label{font-size:12px;font-weight:600;color:var(--color-text-secondary);min-width:120px;text-align:right;white-space:nowrap}.ps__form-row input,.ps__form-row select{flex:1;height:32px;padding:0 10px;border:1px solid var(--color-border-default);border-radius:4px;font-size:13px;background:var(--color-bg-surface)}.ps__form-row input:focus,.ps__form-row select:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-ring)}.ps__conn-cards{display:flex;gap:10px}.ps__conn-card{flex:1;padding:12px;border:2px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .15s}.ps__conn-card:hover{border-color:#94a3b8cc;background:#f0f2f8a6}.ps__conn-card--active{border-color:var(--color-primary-500);background:#eef1ffd9;box-shadow:0 0 0 3px #4f6af614}.ps__conn-card-icon{color:var(--color-text-tertiary)}.ps__conn-card--active .ps__conn-card-icon{color:var(--color-primary-500)}.ps__conn-card-label{font-size:13px;font-weight:700;color:var(--color-text-primary)}.ps__conn-card-desc{font-size:10px;color:var(--color-text-tertiary);text-align:center}.if-detail{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:14px;gap:10px;background:var(--color-bg-page);border-radius:7px}.if-detail__body{flex:1;overflow-y:auto;padding:0}.if-tabs{display:flex;border-bottom:1px solid var(--color-border-default);background:var(--color-bg-surface);padding:0 20px;flex-shrink:0}.if-tab{padding:10px 18px;font-size:13px;font-weight:600;color:var(--color-text-tertiary);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.if-tab:hover{color:var(--color-text-secondary)}.if-tab--active{color:var(--color-text-primary);border-bottom-color:var(--color-primary-500)}.if-tab-content{padding:20px;overflow-y:auto;flex:1}.if-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.if-stat-card{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;box-shadow:0 2px 8px #505a8c0f}.if-stat-card__label{font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em}.if-stat-card__value{font-size:20px;font-weight:800;color:var(--color-text-primary);line-height:1}.if-stat-card__sub{font-size:11px;color:var(--color-text-tertiary)}.if-stat-card--accent .if-stat-card__value{color:var(--color-primary-500)}.if-stat-card--success .if-stat-card__value{color:var(--color-success-500)}.if-stat-card--warn .if-stat-card__value{color:var(--color-warning-500)}.if-conn{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.if-conn-card{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #505a8c0f}.if-conn-card__header{padding:6px 10px;background:var(--color-bg-secondary);font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-text-tertiary);font-family:var(--font-mono);border-bottom:1px solid rgba(226,232,240,.6);display:flex;align-items:center;gap:6px}.if-conn-card__body{padding:12px 14px;display:flex;flex-direction:column;gap:8px}.if-kv{display:flex;align-items:center;gap:10px}.if-kv__label{font-size:12px;font-weight:600;color:var(--color-text-tertiary);min-width:95px;white-space:nowrap}.if-kv__value{font-size:12px;font-weight:500;color:var(--color-text-primary);flex:1}.if-kv__value--mono{font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:3px 8px;border-radius:4px;word-break:break-all}.if-kv__input{flex:1;height:30px;padding:0 8px;border:1px solid var(--color-border-default);border-radius:4px;font-size:12px;background:var(--color-bg-surface);outline:none}.if-kv__input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-ring)}.if-kv__badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700}.if-kv__badge--on{background:var(--color-success-bg);color:var(--color-success-500)}.if-kv__badge--off{background:var(--color-danger-bg);color:var(--color-danger-500)}.if-table-wrap{border:1px solid var(--color-border-soft);border-radius:8px;overflow:hidden}.if-table{width:100%;border-collapse:collapse}.if-table th{height:36px;padding:0 10px;background:var(--color-bg-tertiary);border-bottom:2px solid var(--color-border-default);font-size:11px;font-weight:700;color:var(--color-text-secondary);text-align:left;white-space:nowrap}.if-table td{height:38px;padding:6px 10px;border-bottom:1px solid var(--color-border-soft);font-size:12px;color:var(--color-text-primary);vertical-align:middle}.if-table tbody tr{transition:background .1s}.if-table tbody tr:hover td{background:var(--color-bg-secondary)}.if-table tbody tr:last-child td{border-bottom:none}.if-table__row--disabled td{opacity:.4}.if-row-name{font-weight:600;margin-bottom:2px}.if-row-desc{font-size:11px;color:var(--color-text-tertiary);line-height:1.3;white-space:normal;max-width:350px}.if-endpoint{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:11px;background:var(--color-bg-tertiary);padding:2px 8px;border-radius:4px;color:var(--color-text-secondary)}.if-toggle{width:34px;height:18px;border-radius:9px;background:#cbd5e1;position:relative;cursor:pointer;border:none;padding:0;transition:background .2s}.if-toggle--on{background:var(--color-success-500)}.if-toggle__dot{width:14px;height:14px;border-radius:50%;background:var(--color-bg-surface);position:absolute;top:2px;left:2px;transition:transform .2s;box-shadow:0 1px 2px #0003}.if-toggle--on .if-toggle__dot{transform:translate(16px)}.if-log-list{display:flex;flex-direction:column;gap:6px}.if-log-item{display:flex;gap:10px;padding:8px 12px;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:6px;font-size:12px;align-items:flex-start}.if-log-item__time{font-family:var(--font-mono);font-size:11px;color:var(--color-text-tertiary);white-space:nowrap;min-width:140px}.if-log-item__badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:700;white-space:nowrap}.if-log-item__badge--ok{background:#dcfce7;color:#16a34a}.if-log-item__badge--err{background:#fee2e2;color:#dc2626}.if-log-item__badge--warn{background:#fef3c7;color:#d97706}.if-log-item__msg{color:var(--color-text-primary);flex:1}.if-log-empty{text-align:center;color:var(--color-text-tertiary);padding:40px;font-size:13px}:root{color-scheme:light;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-soft: rgba(59, 130, 246, .08);--color-primary-glow: rgba(59, 130, 246, .15);--color-primary-ring: rgba(59, 130, 246, .25);--color-text-primary: #051766;--color-text-secondary: #252525;--color-text-tertiary: #5e5e5e;--color-text-placeholder: #a4a4a4;--color-text-inverse: #ffffff;--color-bg-page: #252525;--color-bg-surface: #ffffff;--color-bg-secondary: #f7f7f7;--color-bg-tertiary: #ededed;--color-bg-muted: #f7f7f7;--color-bg-pressed: #d9d9d9;--color-border-default: #d9d9d9;--color-border-soft: #ededed;--color-border-strong: #051766;--color-border-hover: #a4a4a4;--color-neutral-100: #f7f7f7;--color-neutral-200: #ededed;--color-overlay: rgb(37 37 37 / 50%);--color-surface-alpha-0: rgb(255 255 255 / 0%);--color-surface-alpha-42: rgb(255 255 255 / 42%);--color-surface-alpha-88: rgb(255 255 255 / 88%);--color-danger-500: #da291c;--color-danger-bg: #fff5f5;--color-danger-border: rgba(218, 41, 28, .26);--color-danger-glow: rgba(218, 41, 28, .15);--color-success-500: #28794e;--color-success-bg: rgba(40, 121, 78, .1);--color-success-border: rgba(40, 121, 78, .28);--color-success-glow: rgba(40, 121, 78, .15);--color-warning-500: #b33c00;--color-warning-bg: rgba(179, 60, 0, .08);--color-warning-border: rgba(179, 60, 0, .26);--color-sidebar-bg: #ffffff;--color-sidebar-hover: #f7f7f7;--color-sidebar-active: rgba(59, 130, 246, .08);--color-sidebar-text: #252525;--color-sidebar-text-active: #051766;--color-sidebar-border: #d9d9d9;--color-pda-border-table: #a4a4a4;--color-pda-border-row: #d9d9d9;--color-pda-border-form: #5e5e5e;--color-pda-border-muted: #d9d9d9;--color-pda-bg-readonly: #f7f7f7;--color-pda-bg-danger: #fff5f5;--color-pda-bg-warning: #fff7ec;--color-pda-highlight: #57bbeb;--color-pda-highlight-secondary: #ddf1fb;--color-pda-text-positive: #28794e;--color-pda-text-warning: #b33c00;--color-pda-text-danger: #c92317;--color-pda-text-accent: #da291c;--color-pda-scroll-fade: rgb(164 164 164 / 30%)}@font-face{font-family:Hanjin Group Sans;font-weight:300;font-style:normal;font-display:swap;src:url(/assets/HanjinGroupSans-Light-WYikYdWt.woff2) format("woff2"),url(/assets/HanjinGroupSans-Light-CAKBhuUC.woff) format("woff")}@font-face{font-family:Hanjin Group Sans;font-weight:400;font-style:normal;font-display:swap;src:url(/assets/HanjinGroupSans-Regular-C7cTeQca.woff2) format("woff2"),url(/assets/HanjinGroupSans-Regular-C3f3LS3h.woff) format("woff")}@font-face{font-family:Hanjin Group Sans;font-weight:700;font-style:normal;font-display:swap;src:url(/assets/HanjinGroupSans-Bold-DrZbxo_T.woff2) format("woff2"),url(/assets/HanjinGroupSans-Bold-DCZ6fbJ-.woff) format("woff")}@font-face{font-family:Noto Sans KR;font-weight:300;font-style:normal;font-display:swap;src:url(/assets/NotoSansKR-300Light-C3t8TutG.woff2) format("woff2")}@font-face{font-family:Noto Sans KR;font-weight:400;font-style:normal;font-display:swap;src:url(/assets/NotoSansKR-400Regular-CmjJz_gz.woff2) format("woff2")}@font-face{font-family:Noto Sans KR;font-weight:500;font-style:normal;font-display:swap;src:url(/assets/NotoSansKR-500Medium-BlTm2RPg.woff2) format("woff2")}@font-face{font-family:Noto Sans KR;font-weight:700;font-style:normal;font-display:swap;src:url(/assets/NotoSansKR-700Bold-DvnDzSjd.woff2) format("woff2")}:root{--font-sans: "Hanjin Group Sans", "Noto Sans KR", sans-serif;--font-mono: "D2Coding", "JetBrains Mono", "Cascadia Code", ui-monospace, monospace;--shadow-xs: 0 0 15px rgba(0, 0, 0, .04);--shadow-sm: 0 0 25px rgba(0, 0, 0, .06);--shadow-md: 0 4px 20px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .14);--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 22px;--radius-xl: 28px;--radius-2xl: 36px;--radius-pill: 9999px;--btn-h: 36px;--btn-px: 18px;--btn-radius: 12px;--btn-icon: 32px;--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");--icon-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12'/%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3Cpath d='M5 21h14'/%3E%3C/svg%3E");--icon-refresh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 0 1-15 6.7L3 16'/%3E%3Cpath d='M3 21v-5h5'/%3E%3Cpath d='M3 12a9 9 0 0 1 15-6.7L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3C/svg%3E");--icon-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");--icon-save: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z'/%3E%3Cpath d='M17 21v-8H7v8'/%3E%3Cpath d='M7 3v5h8'/%3E%3C/svg%3E");--icon-trash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.35' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3C/svg%3E");--icon-print: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V3h12v6'/%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 14h12v7H6z'/%3E%3C/svg%3E");--icon-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");--icon-edit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L8 18l-4 1 1-4 11.5-11.5z'/%3E%3C/svg%3E");--icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='11' height='11' rx='2'/%3E%3Crect x='4' y='4' width='11' height='11' rx='2'/%3E%3C/svg%3E");--icon-upload: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.35' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12'/%3E%3Cpath d='m7 8 5-5 5 5'/%3E%3Cpath d='M5 21h14'/%3E%3C/svg%3E");--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235e5e5e' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");--layout-pda-rhythm: 24px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-sans)!important}html,body,#root{height:100%}html{background:var(--color-bg-page)}body{font-family:var(--font-sans);font-size:14px;color:var(--color-text-primary);background:var(--color-bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;text-rendering:optimizeLegibility}#root{display:flex;flex-direction:column;min-height:100vh;position:relative;isolation:isolate}button{cursor:pointer;font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:inherit;color:var(--color-text-primary)}table{border-collapse:collapse}a{color:inherit;text-decoration:none}::selection{background:var(--color-primary-soft);color:var(--color-text-primary)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:var(--color-bg-page);pointer-events:none}.app-layout{display:flex;height:100vh;overflow:hidden;background:transparent;position:relative;z-index:1;padding:16px;gap:12px}.app-content{flex:1;height:100%;overflow:hidden;display:flex;flex-direction:column;background:transparent;border-left:none;padding:0;gap:12px;min-width:0}.app-content--sidebar-hidden{padding-left:0}.app-pages{flex:1;position:relative;overflow:hidden;background:transparent;padding:0;border-radius:var(--radius-lg)}.app-page-slot{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.sidebar-edge-toggle{position:fixed;left:296px;top:50%;transform:translateY(-50%);z-index:100;width:22px;height:50px;border:1px solid var(--color-border-default);border-radius:0 12px 12px 0;background:var(--color-bg-tertiary);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;box-shadow:var(--shadow-sm);transition:background .2s,color .2s,left .28s cubic-bezier(.32,.72,0,1),transform .18s}.sidebar-edge-toggle--closed{left:0;border-left:none}.sidebar-edge-toggle:hover{background:var(--color-bg-surface);color:var(--color-primary-500);transform:translateY(-50%) scale(1.04)}.card{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.section-title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary);padding:10px 14px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-soft)}.btn-red,.btn-outline,.btn-primary,.btn-secondary,.btn-danger{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--btn-h);padding:0 var(--btn-px);border-radius:var(--btn-radius);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:var(--font-sans);border:1px solid var(--color-border-default);letter-spacing:.01em;isolation:isolate;overflow:hidden;transition:background .18s cubic-bezier(.32,.72,0,1),border-color .18s,color .18s,transform .18s,box-shadow .18s;box-shadow:none}.btn-red,.btn-primary{background:var(--color-primary-500);color:var(--color-text-inverse);border-color:var(--color-primary-500);box-shadow:none}.btn-red:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--color-primary-600);border-color:var(--color-primary-600)}.btn-red:active:not(:disabled),.btn-primary:active:not(:disabled){background:var(--color-primary-600);border-color:var(--color-primary-600)}.btn-red:disabled,.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-outline,.btn-secondary{background:var(--color-bg-surface);color:var(--color-text-primary);border-color:var(--color-border-default);box-shadow:none}.btn-outline:hover:not(:disabled),.btn-secondary:hover:not(:disabled){background:var(--color-bg-surface);border-color:var(--color-border-strong)}.btn-outline:active:not(:disabled),.btn-secondary:active:not(:disabled){background:var(--color-bg-pressed)}.btn-outline:disabled,.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger-500);border-color:var(--color-danger-border);box-shadow:none}.btn-danger:hover:not(:disabled){background:var(--color-danger-500);border-color:var(--color-danger-500);color:#fff}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.btn-red:focus-visible,.btn-outline:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-danger:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.btn-sm{height:30px!important;min-height:30px!important;padding:0 14px!important;border-radius:10px!important;font-size:12px!important}td .btn-red,td .btn-outline,td .btn-primary,td .btn-secondary,td .btn-danger{height:30px;min-height:30px;padding:0 14px;border-radius:10px;font-size:12px}.data-table{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--font-sans)}.data-table th{background:var(--color-bg-tertiary);color:var(--color-text-primary);font-weight:700;padding:10px 12px;border-top:1px solid var(--color-border-soft);border-bottom:1px solid var(--color-border-default);text-align:center;white-space:nowrap;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.data-table td{padding:10px 12px;border-bottom:1px solid var(--color-border-soft);text-align:center;color:var(--color-text-primary);background:transparent;white-space:nowrap;font-size:12px}.data-table tr:nth-child(2n) td{background:var(--color-bg-secondary)}.data-table tbody tr:hover td{background:var(--color-primary-soft)}*{scrollbar-width:thin;scrollbar-color:var(--color-primary-ring) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#161c3238;border-radius:6px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#161c3261;background-clip:content-box}::-webkit-scrollbar-thumb:active{background:var(--color-primary-500);background-clip:content-box}::-webkit-scrollbar-corner{background:transparent}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#050a148c;backdrop-filter:blur(8px) saturate(1.1);-webkit-backdrop-filter:blur(8px) saturate(1.1);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:overlayIn .18s cubic-bezier(.32,.72,0,1)}@keyframes overlayIn{0%{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{opacity:1}}.modal-box{background:var(--color-bg-tertiary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--color-border-strong);width:480px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;animation:modalIn .28s cubic-bezier(.32,.72,0,1);overflow:hidden}@keyframes modalIn{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-secondary)}.modal-header h3{font-size:15px;font-weight:700;color:var(--color-text-primary);letter-spacing:-.01em}.modal-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:10px;font-size:16px;color:var(--color-text-secondary);cursor:pointer;transition:background .16s,color .16s;line-height:1;padding:0}.modal-close:hover{background:var(--color-danger-bg);color:var(--color-danger-500);border-color:var(--color-danger-border)}.modal-body{flex:1;overflow-y:auto;padding:20px;background:transparent}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border-soft);background:var(--color-bg-secondary)}.form-row{display:flex;align-items:center;margin-bottom:14px;gap:14px}.form-row label{font-size:13px;font-weight:600;color:var(--color-text-secondary);width:100px;flex-shrink:0}.form-row input,.form-row select{flex:1;min-height:36px;border:1px solid var(--color-border-default);border-radius:var(--radius-xs);padding:0 12px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-secondary);outline:none;font-family:var(--font-sans);transition:border-color .18s,background .18s,box-shadow .18s}.form-row select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:32px;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right 10px center;background-size:14px 14px}.form-row input:hover:not(:disabled):not(:focus),.form-row select:hover:not(:disabled):not(:focus){border-color:var(--color-border-strong);background:var(--color-bg-surface)}.form-row input:focus,.form-row select:focus{border-color:var(--color-primary-500);background:var(--color-bg-surface);box-shadow:0 0 0 3px var(--color-primary-ring)}.form-row input:disabled,.form-row select:disabled{background:var(--color-bg-secondary);color:var(--color-text-tertiary);cursor:not-allowed;border-color:var(--color-border-soft)}.ps select,.rfid select,.cc-main select,.if-detail select,.history-page select,.diag select,.zd select,.plcs select,.ztm-field select,.ztm-grid select,.lp-field select,.zpl-modal__control-row select,.mm-sheet__form-select{min-height:36px;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:32px;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right 10px center;background-size:14px 14px}.ps select:focus,.rfid select:focus,.cc-main select:focus,.if-detail select:focus,.history-page select:focus,.diag select:focus,.zd select:focus,.plcs select:focus,.ztm-field select:focus,.ztm-grid select:focus,.lp-field select:focus,.zpl-modal__control-row select:focus,.mm-sheet__form-select:focus{border-color:var(--color-primary-500)!important;box-shadow:0 0 0 3px var(--color-primary-ring)!important}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.csel__trigger{border:1px solid var(--color-border-default)!important;background-color:var(--color-bg-secondary)!important;color:var(--color-text-primary);border-radius:var(--radius-xs)!important;transition:border-color .18s,background .18s,box-shadow .18s}input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus,.csel--open .csel__trigger,.csel__trigger:focus-visible{border-color:var(--color-primary-500)!important;background-color:var(--color-bg-surface)!important;box-shadow:0 0 0 3px var(--color-primary-ring)!important}input::placeholder,textarea::placeholder{color:var(--color-text-tertiary)}input[type=checkbox],input[type=radio]{accent-color:var(--color-primary-500)}.app-page-slot>div,.zpl-tester,.dashboard,.history-page,.diag,.lm,.ps,.rfid,.if-manage,.plcs,.zd{background:transparent!important}.card,.panel,.diag__card,.ps__list,.ps__detail,.rfid__list,.rfid__detail,.cc-side,.cc-main,.if-tab-content,.if-conn-card,.if-log-list,.zd-panel,.plcs__sidebar,.plcs__detail,.lm-search,.lm-section,.lm-actions,.history-search,.history-results,.plcs__map-table-wrap,.zpl-tester .card,.zpl-tester .ta,.zpl-tester .logi,.zpl-tester .items,.zpl-tester .tab-bar,.if-table-wrap,.cc-code-grid__head,.dashboard__panel,.cc-panel,.zd-header,.zd-bottom,.ztm-panel,.ztm-preview,.lp-section,.lp-preview,.lp-metric,.chart-panel,.current-card{background:var(--color-bg-surface)!important;border:1px solid var(--color-border-default)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important}.history-results__header,.ps__list-header,.ps__detail-header,.rfid__list-header,.rfid__detail-header,.rfid__mqtt-bar,.cc-panel__header,.cc-side__header,.cc-main__header,.cc-main__search-bar,.if-tabs,.if-conn-card__header,.zd-header,.zd-panel-title,.zd-bottom-tabs,.diag__card-h,.plcs__sidebar-header,.plcs__detail-header,.ztm-panel__head,.lp-section__header,.zpl-tester .card-h,.chart-panel__header,.current-card__header{background:var(--color-bg-secondary)!important;border-bottom:1px solid var(--color-border-soft)!important;color:var(--color-text-primary)}.ztm-search,.lp-search,.history-search__form,.history-search,.cc-main__search-bar,.plcs__search-wrap,.lm-search{background:var(--color-bg-secondary)!important;border:1px solid var(--color-border-default)!important;border-radius:var(--radius-md)!important;box-shadow:none!important}.history-search__field input,.history-search__field select,.lm-field__input,.lm-field__select,.cc-field__input,.cc-main__search-input,.if-kv__input,.plcs__search-input,.pm__input,.mm__input,.form-row input,.form-row select,.zpl-tester .itm,.cc-side__item{background:var(--color-bg-secondary)!important;border:1px solid var(--color-border-default)!important;color:var(--color-text-primary)!important}.form-row input:focus,.form-row select:focus,.lm-field__input:focus,.cc-field__input:focus{background:var(--color-bg-surface)!important;border-color:var(--color-primary-500)!important;box-shadow:0 0 0 3px var(--color-primary-ring)!important}.cc-side__item--active,.zpl-tester .itm.on{background:var(--color-primary-soft)!important;border-color:var(--color-primary-500)!important;color:var(--color-text-primary)!important;box-shadow:0 0 0 1px var(--color-primary-ring)!important}.cc-code-grid__row:hover,.plc-card--selected,.if-table tbody tr:hover td{background:var(--color-primary-soft)!important}.modal-overlay,.zpl-modal-overlay,.zd-modal-overlay,.ps__modal-overlay,.rfid__modal-overlay,.cc-drawer-backdrop,.pm__overlay,.mm__overlay{background:#050a148c!important;backdrop-filter:blur(8px) saturate(1.1)!important;-webkit-backdrop-filter:blur(8px) saturate(1.1)!important}.modal-overlay,.zpl-modal-overlay,.zd-modal-overlay,.ps__modal-overlay,.rfid__modal-overlay,.cc-drawer-backdrop,.pm__overlay,.mm__overlay{background:#0f1e3c4d!important}.modal-box,.zpl-modal,.zd-modal,.ps__modal,.rfid__modal,.cc-drawer,.confirm-modal,.pm__modal,.mm__modal,.mm-sheet{background:var(--color-bg-tertiary)!important;border:1px solid var(--color-border-strong)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-xl)!important}.modal-header,.modal-footer,.zpl-modal__header,.zpl-modal__controls,.zpl-modal__actions,.zpl-modal__preview-header,.zd-modal-header,.ps__modal-header,.ps__modal-footer,.rfid__modal-header,.rfid__modal-footer,.cc-drawer__header,.cc-drawer__footer{background:var(--color-bg-secondary)!important;border-color:var(--color-border-soft)!important;color:var(--color-text-primary)}.data-table,.zpl-grid,.ztm-grid,.lp-table,.rfid__table,.if-table,.plcs__map-table,.cc-table,.current-card__table{border-collapse:collapse!important;border-spacing:0!important;font-size:12px;color:var(--color-text-primary)}.data-table th,.zpl-grid th,.ztm-grid th,.lp-table th,.rfid__table th,.if-table th,.plcs__map-table th,.cc-table th{height:36px;background:var(--color-bg-tertiary)!important;color:var(--color-text-primary)!important;border-top:1px solid var(--color-border-soft)!important;border-bottom:1px solid var(--color-border-default)!important;border-left:1px solid var(--color-border-soft)!important;border-right:1px solid var(--color-border-soft)!important;font-size:12px!important;font-weight:700!important;letter-spacing:.04em!important;text-transform:uppercase}.data-table td,.zpl-grid td,.ztm-grid td,.lp-table td,.rfid__table td,.if-table td,.plcs__map-table td,.cc-table td{background:transparent!important;border-bottom:1px solid var(--color-border-soft)!important;border-left:1px solid var(--color-border-soft)!important;border-right:1px solid var(--color-border-soft)!important;color:var(--color-text-primary)!important;font-size:12px!important}.data-table tbody tr:nth-child(2n) td,.zpl-grid tbody tr:nth-child(2n) td,.ztm-grid tbody tr:nth-child(2n) td,.lp-table tbody tr:nth-child(2n) td,.rfid__table tbody tr:nth-child(2n) td,.if-table tbody tr:nth-child(2n) td,.plcs__map-table tbody tr:nth-child(2n) td,.cc-table tbody tr:nth-child(2n) td{background:var(--color-bg-secondary)!important}.data-table tbody tr:hover td,.zpl-grid tbody tr:hover td,.ztm-grid tbody tr:hover td,.lp-table tbody tr:hover td,.rfid__table tbody tr:hover td,.if-table tbody tr:hover td,.plcs__map-table tbody tr:hover td,.cc-table tbody tr:hover td{background:var(--color-primary-soft)!important}.cc-row--active td,.ztm-grid__row--selected td,.lp-table__row--selected td,.ht-row--selected td,.zpl-grid tr.zpl-grid__row--hl td{background:var(--color-primary-soft)!important;color:var(--color-text-primary)!important}button:not(.sidebar__item):not(.btm-table-action):not(.cc-table-action):not(.tab-bar__close):not(.modal-close):not([class*=ui-]):not(.sidebar__close-btn):not(.sidebar-edge-toggle):not(.cc-drawer__close):not(.btm-drawer__close):not(.theme-toggle__option),[class*=btn]:not(.sidebar__item):not(.btm-table-action):not(.cc-table-action):not(.tab-bar__close):not(.modal-close):not([class*=ui-]):not(.sidebar__close-btn):not(.sidebar-edge-toggle):not(.cc-drawer__close):not(.btm-drawer__close):not(.theme-toggle__option){min-height:var(--btn-h)!important;padding:0 var(--btn-px)!important;border-radius:var(--btn-radius)!important;font-weight:600!important;letter-spacing:.01em!important;text-shadow:none!important;transition:background .18s cubic-bezier(.32,.72,0,1),border-color .18s,color .18s,transform .18s,box-shadow .18s!important}.btn-outline,.zpl-toolbar__btn,.zd-hbtn,.zd-btab-action,.plcs__tool-btn,.chart-panel__page-btn,.chart-panel__zoom-reset-btn,.zpl-modal__btn{background:var(--color-bg-surface)!important;border:1px solid var(--color-border-default)!important;color:var(--color-text-primary)!important;box-shadow:none!important}.btn-outline:hover:not(:disabled),.zpl-toolbar__btn:hover:not(:disabled),.zd-hbtn:hover:not(:disabled),.zd-btab-action:hover:not(:disabled),.plcs__tool-btn:hover:not(:disabled),.zpl-modal__btn:hover:not(:disabled){background:var(--color-bg-surface)!important;border-color:var(--color-border-strong)!important;color:var(--color-text-primary)!important;box-shadow:none!important}.btn-red,.history-search__btn,.zd-hbtn--accent,.zd-print-btn,.zpl-toolbar__btn--print,.zpl-modal__btn--primary,.diag__btn--primary,.chart-panel__auto-btn{background:var(--color-primary-500)!important;border:1px solid var(--color-primary-500)!important;color:var(--color-text-inverse)!important;box-shadow:none!important}.btn-red:hover:not(:disabled),.history-search__btn:hover:not(:disabled),.zd-hbtn--accent:hover:not(:disabled),.zd-print-btn:hover:not(:disabled),.zpl-toolbar__btn--print:hover:not(:disabled),.zpl-modal__btn--primary:hover:not(:disabled),.diag__btn--primary:hover:not(:disabled),.chart-panel__auto-btn:hover:not(:disabled){background:var(--color-primary-600)!important;border-color:var(--color-primary-600)!important;box-shadow:none!important}.btn-outline--danger,.zpl-toolbar__btn--delete,.btn-action--delete{color:var(--color-danger-500)!important;border-color:var(--color-danger-border)!important;background:var(--color-danger-bg)!important;box-shadow:none!important}.btn-outline--danger:hover:not(:disabled),.zpl-toolbar__btn--delete:hover:not(:disabled),.btn-action--delete:hover:not(:disabled){background:var(--color-danger-500)!important;border-color:var(--color-danger-500)!important;color:#fff!important;box-shadow:none!important}.history-search__btn:not(:has(svg)):before,.diag__btn:not(:has(svg)):before,.btn-icon-download:not(:has(svg)):before,.zpl-toolbar__btn:not(:has(svg)):before,.btn-red:not(:has(svg)):before,.btn-outline:not(:has(svg)):before,.chart-panel__auto-btn:not(:has(svg)):before,.chart-panel__zoom-reset-btn:not(:has(svg)):before{content:"";width:14px;height:14px;display:inline-block;background:currentColor;mask:var(--btn-icon, var(--icon-search)) center / contain no-repeat;-webkit-mask:var(--btn-icon, var(--icon-search)) center / contain no-repeat;flex-shrink:0}.history-search__btn,.diag__btn,.chart-panel__zoom-reset-btn{--btn-icon: var(--icon-refresh)}.history-search__btn{--btn-icon: var(--icon-search)}.btn-icon-download,.zd-btab-action,.zpl-modal__btn:not(.zpl-modal__btn--primary){--btn-icon: var(--icon-download)}.btn-red{--btn-icon: var(--icon-save)}.btn-outline{--btn-icon: var(--icon-edit)}.btn-outline--danger,.zpl-toolbar__btn--delete{--btn-icon: var(--icon-trash)}.zpl-toolbar__btn{--btn-icon: var(--icon-save)}.zpl-toolbar__btn--print{--btn-icon: var(--icon-print)}.diag__btn--primary,.chart-panel__auto-btn{--btn-icon: var(--icon-play)}.btn-action--search{--btn-icon: var(--icon-search)}.btn-action--copy{--btn-icon: var(--icon-copy)}.btn-action--add{--btn-icon: var(--icon-plus)}.btn-action--save{--btn-icon: var(--icon-save)}.btn-action--delete{--btn-icon: var(--icon-trash)}.btn-action--upload{--btn-icon: var(--icon-upload)}.btn-action--print{--btn-icon: var(--icon-print)}.btn-red,.btn-outline,.history-search__btn,.btn-icon-download,.zpl-toolbar__btn,.diag__btn,.ps__list-add,.rfid__list-add,.cc-side__add-btn,.cc-act-btn,.zd-hbtn,.zd-btab-action,.zd-print-btn,.zd-tpl-save-btn,.plc-btn,.plcs__add-btn,.plcs__tool-btn,.zpl-modal__btn,.chart-panel__pause-btn,.chart-panel__page-btn,.chart-panel__zoom-reset-btn,.chart-panel__auto-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:var(--btn-h)!important;border-radius:var(--btn-radius)!important;font-weight:600!important}.history-page .card,.dashboard .card,.diag .diag__card,.ps__list,.ps__detail,.rfid__list,.rfid__detail,.cc-side,.cc-main,.if-tabs,.if-tab-content,.if-conn-card,.if-log-list,.zd-panel,.zd-header,.zd-print-area,.plcs__sidebar,.plcs__detail{border-radius:var(--radius-md)!important}.ps__card,.rfid__card,.cc-side__item,.cc-code-grid__row,.if-log-item,.diag__itm,.zd-elem-item,.zd-tpl-item,.plc-card{border-radius:var(--radius-xs)}.ps__list-add,.rfid__list-add,.ps__conn-card,.rfid__conn-card,.cc-side__add-btn,.cc-act-btn,.diag__btn,.zd-hbtn,.zd-preset-btn,.zd-tpl-save-btn,.plcs__add-btn,.plcs__tool-btn,.plc-btn{border-radius:var(--btn-radius)}.ps input,.ps select,.ps textarea,.rfid input,.rfid select,.rfid textarea,.cc-main input,.cc-main select,.cc-main textarea,.if-detail input,.if-detail select,.if-detail textarea,.history-page input,.history-page select,.history-page textarea,.diag input,.diag select,.diag textarea,.zd input,.zd select,.zd textarea,.plcs input,.plcs select,.plcs textarea{border-radius:var(--radius-xs)}.lm-search,.lm-section,.lm-actions,.history-search,.history-results,.cc-side__item,.cc-code-grid__head,.cc-code-grid__row,.plcs__map-table-wrap,.plcs__map-table,.if-table-wrap{border-radius:var(--radius-md)}.lm-section__title,.history-search__field label,.cc-side__title,.cc-main__title,.if-conn-card__header,.plcs__sidebar-header,.plcs__detail-title{color:var(--color-text-primary)!important}.lm-section__title{border-right:2px solid var(--color-primary-500);background:var(--color-bg-secondary)}.lm-field__input,.lm-field__select,.zpl-toolbar__printer-select,.cc-field__input,.cc-main__search-input,.if-kv__input,.plcs__search-input,.pm__input,.mm__input,.history-search__field input,.history-search__field select{border-radius:var(--radius-xs);border:1px solid var(--color-border-default);background:var(--color-bg-secondary);color:var(--color-text-primary)}.tswitch{display:inline-flex;align-items:center;width:46px;height:26px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:13px;padding:2px;cursor:pointer;flex-shrink:0;transition:background .24s cubic-bezier(.32,.72,0,1),border-color .24s;outline:none;box-shadow:none}.tswitch:focus-visible{box-shadow:0 0 0 3px var(--color-primary-ring)}.tswitch--on{background:linear-gradient(180deg,var(--color-primary-500) 0%,var(--color-primary-600) 100%);border-color:#ffffff2e;box-shadow:0 4px 14px var(--color-primary-glow)}.tswitch__thumb{width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 2px 6px #0000004d,0 0 0 .5px #0000000a;transform:translate(0);transition:transform .24s cubic-bezier(.32,.72,0,1);flex-shrink:0}.tswitch--on .tswitch__thumb{transform:translate(20px)}.tswitch-row{display:inline-flex;align-items:center;gap:12px}.tswitch-row__label{font-size:13px;font-weight:500;color:var(--color-text-primary);-webkit-user-select:none;user-select:none}.sc{display:inline-flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:12px;padding:3px;gap:0;box-shadow:none}.sc__btn{padding:6px 16px;font-size:12px;font-weight:600;color:var(--color-text-secondary);background:transparent;border:none;border-radius:9px;cursor:pointer;font-family:var(--font-sans);transition:background .18s,color .18s;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1.4}.sc__btn:hover:not(.sc__btn--active){color:var(--color-text-primary);background:var(--color-bg-surface)}.sc__btn--active{background:var(--color-bg-surface);color:var(--color-primary-500);font-weight:700;box-shadow:var(--shadow-xs)}.theme-toggle{display:inline-flex;background:var(--color-bg-secondary);border:1px solid var(--color-border-default);border-radius:999px;padding:3px;gap:0}.theme-toggle__option{width:28px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:999px;color:var(--color-text-tertiary);cursor:pointer;transition:background .18s,color .18s}.theme-toggle__option:hover{color:var(--color-text-primary)}.theme-toggle__option--active{background:var(--color-bg-surface);color:var(--color-primary-500);box-shadow:var(--shadow-xs)}.theme-toggle__option svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}body,.app-layout,.app-content,.app-page-slot{color:var(--color-text-primary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.dashboard,.dashboard *,.history-page,.history-page *,.diag,.diag *,.lm,.lm *,.ps,.ps *,.rfid,.rfid *,.if-manage,.if-manage *,.plcs,.plcs *,.zd,.zd *,.ztm,.ztm *,.lp,.lp *,.cc,.cc *,.btm,.btm *,.zpl-tester,.zpl-tester *{color:inherit}.dashboard,.history-page,.diag,.lm,.ps,.rfid,.if-manage,.plcs,.zd,.ztm,.lp,.cc,.btm,.zpl-tester{color:var(--color-text-primary)}.dashboard h1,.dashboard h2,.dashboard h3,.dashboard h4,.history-page h1,.history-page h2,.history-page h3,.history-page h4,.diag h1,.diag h2,.diag h3,.diag h4,.lm h1,.lm h2,.lm h3,.lm h4,.ps h1,.ps h2,.ps h3,.ps h4,.rfid h1,.rfid h2,.rfid h3,.rfid h4,.if-manage h1,.if-manage h2,.if-manage h3,.if-manage h4,.plcs h1,.plcs h2,.plcs h3,.plcs h4,.zd h1,.zd h2,.zd h3,.zd h4,.ztm h1,.ztm h2,.ztm h3,.ztm h4,.lp h1,.lp h2,.lp h3,.lp h4,.cc h1,.cc h2,.cc h3,.cc h4,.btm h1,.btm h2,.btm h3,.btm h4,.zpl-tester h1,.zpl-tester h2,.zpl-tester h3,.zpl-tester h4{color:var(--color-text-primary)!important}[class*=__title]:not([class*=ui-]),[class*=__subtitle]:not([class*=ui-]),[class*=__label]:not([class*=ui-]),[class*=__caption]:not([class*=ui-]),[class*=__hint]:not([class*=ui-]){color:var(--color-text-primary)}.lm-section__title,.cc-side__title,.cc-main__title,.if-conn-card__title,.plcs__detail-title,.plcs__sidebar-title,.diag__card-h,.history-results__title,.ps__list-title,.ps__detail-title,.rfid__list-title,.rfid__detail-title,.cc-panel__title,.zd-panel-title,.lp-section__title,.ztm-panel__title,.chart-panel__title{color:var(--color-text-primary)!important}.if-log-item__badge--ok,[class*=--ok]:not([class*=ui-]),[class*=--success]:not([class*=ui-]){background:var(--color-success-bg)!important;color:var(--color-success-500)!important;border-color:var(--color-success-border)!important}.if-log-item__badge--err,[class*=--err]:not([class*=ui-]),[class*=--error]:not([class*=ui-]),[class*=--danger]:not([class*=ui-]){background:var(--color-danger-bg)!important;color:var(--color-danger-500)!important;border-color:var(--color-danger-border)!important}.if-log-item__badge--warn,[class*=--warn]:not([class*=ui-]),[class*=--warning]:not([class*=ui-]){background:var(--color-warning-bg)!important;color:var(--color-warning-500)!important;border-color:var(--color-warning-border)!important}.muted,[class*=__muted]:not([class*=ui-]),[class*=--muted]:not([class*=ui-]),[class*=-secondary]:not([class*=ui-]),[class*=__secondary]:not([class*=ui-]){color:var(--color-text-tertiary)!important}[class*=empty]:not([class*=ui-]),[class*=placeholder]:not([class*=ui-]),[class*=loading]:not([class*=ui-]){color:var(--color-text-tertiary)}[class*=__accent]:not([class*=ui-]),[class*=--accent]:not([class*=ui-]),[class*=__brand]:not([class*=ui-]),[class*=--brand]:not([class*=ui-]){color:var(--color-primary-500)!important}[class*=__value],[class*=-value],.val-num,.val-unit{font-variant-numeric:tabular-nums}.cc-row--active,.ztm-grid__row--selected,.lp-table__row--selected,.ht-row--selected{background:var(--color-primary-soft)!important}.dashboard__panel,.lp-section,.lp-preview,.lp-metric,.history-results,.history-search,.diag__card,.ps__list,.ps__detail,.rfid__list,.rfid__detail,.cc-side,.cc-main,.if-tabs,.if-tab-content,.if-conn-card,.if-log-list,.zd-panel,.zd-header,.zd-bottom,.plcs__sidebar,.plcs__detail,.ztm-panel,.ztm-preview,.lm-search,.lm-section,.lm-actions,.chart-panel,.current-card,.zpl-tester .card{border-width:1px!important}.zd code,.zd pre,.zpl-tester code,.zpl-tester pre,.cc code,.cc pre,.zpl-modal code,.zpl-modal pre,[class*=__code],[class*=__terminal],[class*=__log]{background:var(--color-bg-secondary);color:var(--color-text-primary);border-radius:var(--radius-xs);font-family:var(--font-mono)}[class*=__card]:not(.btn):not(.btn-red):not(.btn-outline),[class*=__panel]:not(.btn){box-shadow:var(--shadow-xs)!important}.cc-page,.cc-panel,.cc-panel__title,.cc-panel__subtitle,.cc-panel__header,.cc-side,.cc-side__title,.cc-side__sub,.cc-side__count,.cc-main,.cc-main__title,.cc-main__sub,.cc-table-wrap,.cc-table th,.cc-table td,.cc-side__item,.cc-side__item-name,.cc-side__item-id,.cc-meta,.cc-meta__label,.cc-meta__value,.cc-action__label,.cc-empty{color:var(--color-text-primary)}.cc-panel__subtitle,.cc-side__sub,.cc-main__sub,.cc-side__count,.cc-side__item-id,.cc-meta__label,.cc-empty{color:var(--color-text-tertiary)!important}.history-page,.history-page *{color:inherit}.history-page{color:var(--color-text-primary)}.history-search__field label,.history-results__count,.history-results__sub{color:var(--color-text-tertiary)!important}.diag,.diag *{color:inherit}.diag,.diag__itm,.diag__itm-name,.diag__itm-val{color:var(--color-text-primary)}.diag__itm-label,.diag__itm-sub{color:var(--color-text-tertiary)!important}.rfid,.rfid *{color:inherit}.rfid{color:var(--color-text-primary)}.rfid__list-title,.rfid__detail-title,.rfid__card-name{color:var(--color-text-primary)!important}.rfid__card-id,.rfid__count,.rfid__sub{color:var(--color-text-tertiary)!important}.if-manage,.if-manage *{color:inherit}.if-manage,.if-conn-card,.if-conn-card__title,.if-conn-card__sub,.if-conn-card__meta,.if-log-item,.if-log-item__time,.if-log-item__msg,.if-kv,.if-kv__label,.if-kv__value{color:var(--color-text-primary)}.if-conn-card__sub,.if-conn-card__meta,.if-log-item__time,.if-kv__label{color:var(--color-text-tertiary)!important}.plcs,.plcs *{color:inherit}.plcs,.plc-card,.plc-card__name,.plc-card__id{color:var(--color-text-primary)}.plc-card__id,.plc-card__sub{color:var(--color-text-tertiary)!important}.zd,.zd *{color:inherit}.zd,.zd-panel-title,.zd-elem-item,.zd-tpl-item{color:var(--color-text-primary)}.zd-elem-item__sub,.zd-tpl-item__sub{color:var(--color-text-tertiary)!important}.ztm,.ztm *{color:inherit}.ztm,.ztm-panel__title,.ztm-field__label,.ztm-grid th,.ztm-grid td{color:var(--color-text-primary)}.lp,.lp *{color:inherit}.lp,.lp-section__title,.lp-field__label,.lp-table th,.lp-table td,.lp-metric__label,.lp-metric__value{color:var(--color-text-primary)}.lp-field__label,.lp-metric__label{color:var(--color-text-tertiary)!important}.lm,.lm *{color:inherit}.lm{color:var(--color-text-primary)}.lm-section__title,.lm-field__label{color:var(--color-text-primary)!important}.ps,.ps *{color:inherit}.ps{color:var(--color-text-primary)}.ps__card-name,.ps__list-title,.ps__detail-title{color:var(--color-text-primary)!important}.ps__card-id,.ps__sub{color:var(--color-text-tertiary)!important}.btm,.btm *{color:inherit}.btm{color:var(--color-text-primary)}.zpl-tester,.zpl-tester *{color:inherit}.zpl-tester,.zpl-tester .card-h,.zpl-tester .itm,.zpl-tester .ta,.zpl-tester .logi,.zpl-tester .items,.zpl-tester .tab-bar{color:var(--color-text-primary)}[style*="color: #1a1a1a"],[style*="color: #333"],[style*="color: #1d1d1f"],[style*="color: #1e293b"],[style*="color: #0f172a"]{color:var(--color-text-primary)!important}[style*="color: #4F6AF6"],[style*="color: #4f6af6"],[style*="color: #3B50D4"],[style*="color: #1849a0"]{color:var(--color-primary-500)!important}.cc-page input,.cc-page select,.cc-page textarea,.history-page input,.history-page select,.history-page textarea,.diag input,.diag select,.diag textarea,.rfid input,.rfid select,.rfid textarea,.if-manage input,.if-manage select,.if-manage textarea,.plcs input,.plcs select,.plcs textarea,.zd input,.zd select,.zd textarea,.ztm input,.ztm select,.ztm textarea,.lp input,.lp select,.lp textarea,.lm input,.lm select,.lm textarea,.ps input,.ps select,.ps textarea,.btm input,.btm select,.btm textarea,.zpl-tester input,.zpl-tester select,.zpl-tester textarea{color:var(--color-text-primary)!important}.csel__dropdown,.csel__list,.popover,.dropdown-menu,[class*=__dropdown]:not(input):not(select),[class*=__menu]:not(input):not(select){color:var(--color-text-primary)}.if-log-list,.zpl-tester .logi,[class*=__log]:not(input):not(select),[class*=__terminal]:not(input):not(select){font-family:var(--font-mono);font-size:12px;color:var(--color-text-primary)}.app-layout__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#050a1473;backdrop-filter:blur(6px) saturate(1.1);-webkit-backdrop-filter:blur(6px) saturate(1.1);animation:app-backdrop-in .18s cubic-bezier(.32,.72,0,1)}.app-layout__backdrop{background:#0f1e3c4d}@keyframes app-backdrop-in{0%{opacity:0}to{opacity:1}}body.app--scroll-locked{overflow:hidden}.sidebar__close-btn{margin-left:auto;width:32px;height:32px;display:none;align-items:center;justify-content:center;background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:10px;color:var(--color-text-secondary);font-size:14px;cursor:pointer;transition:background .16s,color .16s,border-color .16s;padding:0}.sidebar__close-btn:hover{background:var(--color-danger-bg);color:var(--color-danger-500);border-color:var(--color-danger-border)}.sidebar--mobile .sidebar__close-btn{display:inline-flex}@media(max-width:1024px){.app-layout{padding:12px;gap:10px}.app-content{gap:10px}.app-layout--mobile .sidebar{position:fixed;top:0;left:0;bottom:0;margin:0;width:84vw;max-width:320px;z-index:100;border-radius:0 var(--radius-lg) var(--radius-lg) 0;transform:translate(-100%);transition:transform .32s cubic-bezier(.32,.72,0,1);will-change:transform}.app-layout--mobile .sidebar--open{transform:translate(0)}.app-layout--mobile .sidebar--closed{pointer-events:none}.sidebar-edge-toggle{left:12px;top:12px;transform:none;width:40px;height:40px;border-radius:12px;z-index:110}.sidebar-edge-toggle:hover{transform:scale(1.04)}.app-layout--mobile.app-layout--sidebar-open .sidebar-edge-toggle{opacity:0;pointer-events:none}.app-layout--mobile .app-content{padding-left:56px}.app-layout--desktop .sidebar-edge-toggle--open{left:292px}}@media(max-width:640px){.app-content{padding:6px 8px 8px;gap:8px}.app-layout--mobile .app-content{padding-left:56px}.app-page-slot{border-radius:var(--radius-md)}.form-row{flex-direction:column;align-items:stretch;gap:6px;margin-bottom:12px}.form-row label{width:auto}.btn-red,.btn-outline,.btn-primary,.btn-secondary,.btn-danger{min-height:40px;padding:0 16px;font-size:13px}td .btn-red,td .btn-outline,td .btn-primary,td .btn-secondary,td .btn-danger{min-height:32px;height:32px;padding:0 12px}.cc-page,.ps,.rfid,.if-manage,.plcs{flex-direction:column!important;gap:8px!important}.cc-page>*,.ps>*,.rfid>*,.plcs>*{width:100%!important;flex:0 0 auto!important}.data-table th,.data-table td{padding:8px;font-size:11px}.modal-overlay,.ui-modal__overlay{padding:8px}.modal-box,.ui-modal:not(.ui-modal--full){width:100%!important;max-width:100%;max-height:90vh;border-radius:var(--radius-md)}.ui-sf{flex-direction:column;align-items:stretch;gap:10px}.ui-sf__fields{flex-direction:column;align-items:stretch;width:100%}.ui-sf__field{width:100%!important}.ui-sf__actions{justify-content:flex-end}.ui-page-header__main{flex-direction:column;align-items:stretch;gap:10px}.ui-page-header__actions{justify-content:flex-end}.ui-dg__th{height:34px;font-size:10px}.ui-dg__cell{height:34px;font-size:11px;padding:0 9px}}@media(max-width:380px){.app-content{padding:4px 6px 6px;gap:6px}.app-layout--mobile .app-content{padding-left:52px}.modal-header h3,.ui-modal__title{font-size:14px}}@media(prefers-reduced-motion:reduce){.app-layout--mobile .sidebar{transition:none!important}}{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar{background:var(--color-sidebar-bg);box-shadow:var(--shadow-md)}.sidebar__item:hover{background:#1c5cb60f;border-color:var(--color-primary-ring);color:var(--color-text-primary)}.sidebar__item--active{background:linear-gradient(180deg,#1c5cb61f,#1c5cb60f);border-color:var(--color-primary-ring);color:var(--color-primary-500);box-shadow:0 4px 14px var(--color-primary-glow),inset 0 1px #ffffffd9}.sidebar__item--active .sidebar__item-label{color:var(--color-primary-500)}.sidebar__item-icon{background:#1c5cb60f;border-color:var(--color-border-default);color:var(--color-text-secondary)}.sidebar__item:hover .sidebar__item-icon{background:#1c5cb61a;color:var(--color-primary-500)}.tab-bar{background:var(--color-bg-surface);border-color:var(--color-border-default)}.tab-bar__tab{background:#ffffff80;border-color:var(--color-border-soft);color:var(--color-text-secondary)}.tab-bar__tab:hover:not(.tab-bar__tab--active){background:#ffffffd9;border-color:var(--color-border-default);color:var(--color-text-primary)}.tab-bar__tab--active{background:#fffffff5;border-color:var(--color-primary-ring);color:var(--color-primary-500);box-shadow:0 4px 14px var(--color-primary-glow),inset 0 1px #fff}.app-page-slot{background:var(--color-bg-surface);border-color:var(--color-border-default)}.ui-card,.card,.panel,.diag__card,.ps__list,.ps__detail,.rfid__list,.rfid__detail,.cc-side,.cc-main,.cc-panel,.if-tab-content,.if-conn-card,.if-log-list,.zd-panel,.plcs__sidebar,.plcs__detail,.lm-search,.lm-section,.lm-actions,.history-search,.history-results,.ztm-panel,.ztm-preview,.lp-section,.lp-preview,.chart-panel,.current-card{background:var(--color-bg-surface)!important;border-color:var(--color-border-default)!important;box-shadow:var(--shadow-sm)!important}.ui-card__header,.ui-modal__header,.modal-header,.modal-footer,.ui-card__footer,.ui-modal__footer,.cc-panel__header,.cc-side__header,.cc-main__header,.lp-section__header,.ztm-panel__head,.if-conn-card__header,.plcs__sidebar-header,.plcs__detail-header,.ps__list-header,.ps__detail-header,.rfid__list-header,.rfid__detail-header,.history-results__header{background:#eef2f8b8!important;border-color:var(--color-border-soft)!important}.ui-dg__wrap{background:var(--color-bg-surface);border-color:var(--color-border-default)}.ui-dg__th{background:#e8eef6eb;color:var(--color-text-primary);border-bottom-color:var(--color-primary-ring)}.ui-dg__th--sortable:hover{background:#1c5cb614;color:var(--color-primary-500)}.ui-dg__cell{color:var(--color-text-primary)}.ui-dg--striped tbody tr:nth-child(2n)>td:not(.ui-dg__cell--sticky-left):not(.ui-dg__cell--sticky-right){background:#eef2f88c}.ui-dg__row--clickable:hover>td{background:#1c5cb61a!important;color:var(--color-text-primary)}.ui-dg__row--selected>td{background:#1c5cb61f!important;color:var(--color-text-primary)}.data-table th,.zpl-grid th,.ztm-grid th,.lp-table th,.rfid__table th,.if-table th,.plcs__map-table th,.cc-table th{background:#e8eef6eb!important;color:var(--color-text-primary)!important}.data-table tbody tr:nth-child(2n) td,.zpl-grid tbody tr:nth-child(2n) td,.ztm-grid tbody tr:nth-child(2n) td,.lp-table tbody tr:nth-child(2n) td,.rfid__table tbody tr:nth-child(2n) td,.if-table tbody tr:nth-child(2n) td,.plcs__map-table tbody tr:nth-child(2n) td,.cc-table tbody tr:nth-child(2n) td{background:#eef2f88c!important}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.csel__trigger,.ui-tf__shell,.ui-dd__trigger{background-color:#ffffffe0!important;border-color:var(--color-border-default)!important;color:var(--color-text-primary)}input::placeholder,textarea::placeholder{color:var(--color-text-tertiary);opacity:.85}input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus,.ui-tf__shell:focus-within,.ui-dd--open .ui-dd__trigger{background-color:#fff!important;border-color:var(--color-primary-500)!important;box-shadow:0 0 0 3px var(--color-primary-ring)!important}.ui-btn--secondary{background:#ffffffb8;border-color:var(--color-border-default);color:var(--color-text-primary)}.ui-btn--secondary:hover:not(:disabled){background:#fffffff2;border-color:var(--color-border-strong)}.ui-btn--ghost{color:var(--color-text-secondary)}.ui-btn--ghost:hover:not(:disabled){background:#1c5cb60f;color:var(--color-primary-500)}.ui-modal,.modal-box,.zpl-modal,.zd-modal,.ps__modal,.rfid__modal,.cc-drawer,.confirm-modal,.pm__modal,.mm__modal,.mm-sheet{background:#fffffff5!important;border-color:var(--color-border-strong)!important}.sidebar--mobile{background:#fffffff5}.cc-meta__by{color:var(--color-text-secondary)}.cc-meta__at{color:var(--color-text-tertiary)}.btm-nav__item--active{background:#1c5cb60f;border-color:var(--color-primary-ring);box-shadow:inset 4px 0 0 var(--color-primary-500)}.btm-nav__item--active strong{color:var(--color-primary-500)}.btm-nav__item--active span{background:#1c5cb61a;color:var(--color-primary-500);border-color:var(--color-primary-ring)}.lp-ready{background:#ffffffc7;border-color:var(--color-border-default);color:var(--color-text-primary);box-shadow:var(--shadow-xs)}.ui-theme-toggle{background:#ffffffd1;border-color:var(--color-border-default)}.ui-theme-toggle__option--active{background:#fff;color:var(--color-primary-500)}
