.zy-checkbox{align-items:center;gap:var(--zy-space-2);cursor:pointer;font-size:var(--zy-text-sm);color:var(--zy-text);-webkit-user-select:none;user-select:none;display:inline-flex}.zy-checkbox--disabled{cursor:not-allowed;color:var(--zy-text-disabled)}.zy-checkbox__input{opacity:0;width:1px;height:1px;position:absolute}.zy-checkbox__box{border:1.5px solid var(--zy-line-strong);border-radius:var(--zy-radius-sm);background:var(--zy-card);width:18px;height:18px;transition:background var(--zy-duration-fast) var(--zy-ease), border-color var(--zy-duration-fast) var(--zy-ease);flex-shrink:0;position:relative}.zy-checkbox__input:checked+.zy-checkbox__box{background:var(--zy-brand);border-color:var(--zy-brand)}.zy-checkbox__input:checked+.zy-checkbox__box:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.zy-checkbox__input:focus-visible+.zy-checkbox__box{box-shadow:var(--zy-focus-ring)}.zy-checkbox__input:disabled+.zy-checkbox__box{background:var(--zy-bg);border-color:var(--zy-line)}
.zy-switch{align-items:center;gap:var(--zy-space-2);cursor:pointer;font-size:var(--zy-text-sm);color:var(--zy-text);-webkit-user-select:none;user-select:none;display:inline-flex}.zy-switch--disabled{cursor:not-allowed;color:var(--zy-text-disabled)}.zy-switch__input{opacity:0;width:1px;height:1px;position:absolute}.zy-switch__track{border-radius:var(--zy-radius-full);background:var(--zy-line-strong);width:40px;height:22px;transition:background var(--zy-duration-fast) var(--zy-ease);flex-shrink:0;position:relative}.zy-switch__thumb{width:18px;height:18px;box-shadow:var(--zy-shadow-sm);transition:transform var(--zy-duration-fast) var(--zy-ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.zy-switch__input:checked+.zy-switch__track{background:var(--zy-brand)}.zy-switch__input:checked+.zy-switch__track .zy-switch__thumb{transform:translate(18px)}.zy-switch__input:focus-visible+.zy-switch__track{box-shadow:var(--zy-focus-ring)}.zy-switch__input:disabled+.zy-switch__track{opacity:.5}
.zy-badge{align-items:center;gap:var(--zy-space-1);height:22px;padding:0 var(--zy-space-2);border-radius:var(--zy-radius-full);font-size:var(--zy-text-xs);font-weight:var(--zy-weight-medium);white-space:nowrap;line-height:1;display:inline-flex}.zy-badge--neutral{background:var(--zy-bg);color:var(--zy-muted);border:1px solid var(--zy-line)}.zy-badge--brand{background:var(--zy-brand-subtle);color:var(--zy-brand)}.zy-badge--ok{background:var(--zy-ok-bg);color:var(--zy-ok)}.zy-badge--warn{background:var(--zy-warn-bg);color:var(--zy-warn)}.zy-badge--danger{background:var(--zy-danger-bg);color:var(--zy-danger)}.zy-badge--info{background:var(--zy-info-bg);color:var(--zy-info)}
.zy-tag{align-items:center;gap:var(--zy-space-1);height:28px;padding:0 var(--zy-space-3);border:1px solid var(--zy-line);border-radius:var(--zy-radius-full);background:var(--zy-card);color:var(--zy-text-secondary);font-size:var(--zy-text-sm);cursor:pointer;transition:background var(--zy-duration-fast) var(--zy-ease), border-color var(--zy-duration-fast) var(--zy-ease), color var(--zy-duration-fast) var(--zy-ease);display:inline-flex}.zy-tag:hover:not(:disabled):not(.zy-tag--disabled){border-color:var(--zy-brand-light);color:var(--zy-brand)}.zy-tag:focus-visible{box-shadow:var(--zy-focus-ring)}.zy-tag--selected{background:var(--zy-brand-subtle);border-color:var(--zy-brand-light);color:var(--zy-brand);font-weight:var(--zy-weight-medium)}.zy-tag:disabled,.zy-tag--disabled{opacity:.5;cursor:not-allowed}.zy-tag__activate{color:inherit;font:inherit;cursor:inherit;border-radius:var(--zy-radius-full);background:0 0;border:0;align-self:stretch;align-items:center;padding:0;display:inline-flex}.zy-tag__activate:focus-visible{box-shadow:var(--zy-focus-ring)}.zy-tag__remove{width:16px;height:16px;color:var(--zy-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.zy-tag__remove:disabled{cursor:not-allowed}.zy-tag__remove:hover:not(:disabled){background:var(--zy-line);color:var(--zy-text)}.zy-tag__remove:focus-visible{box-shadow:var(--zy-focus-ring)}
.zy-alert{align-items:flex-start;gap:var(--zy-space-3);padding:var(--zy-space-3) var(--zy-space-4);border-radius:var(--zy-radius-md);font-size:var(--zy-text-sm);border:1px solid;display:flex}.zy-alert__icon{flex-shrink:0;margin-top:2px;display:inline-flex}.zy-alert__body{flex:1;min-width:0}.zy-alert__title{margin-bottom:var(--zy-space-1);font-weight:var(--zy-weight-semibold);display:block}.zy-alert__content{color:inherit;opacity:.92;line-height:var(--zy-leading-snug)}.zy-alert__close{border-radius:var(--zy-radius-sm);cursor:pointer;width:28px;height:28px;color:inherit;opacity:.7;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.zy-alert__close:hover{opacity:1;background:#0000000f}.zy-alert__close:focus-visible{box-shadow:var(--zy-focus-ring);opacity:1}.zy-alert--info{background:var(--zy-info-bg);border-color:var(--zy-info-border);color:var(--zy-info)}.zy-alert--ok{background:var(--zy-ok-bg);border-color:var(--zy-ok-border);color:var(--zy-ok)}.zy-alert--warn{background:var(--zy-warn-bg);border-color:var(--zy-warn-border);color:var(--zy-warn)}.zy-alert--danger{background:var(--zy-danger-bg);border-color:var(--zy-danger-border);color:var(--zy-danger)}
.zy-modal-root{z-index:var(--zy-z-modal);padding:var(--zy-space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.zy-modal__backdrop{background:var(--zy-overlay);position:absolute;inset:0}.zy-modal{background:var(--zy-card);border-radius:var(--zy-radius-lg);box-shadow:var(--zy-shadow-lg);outline:none;flex-direction:column;width:100%;max-height:min(90vh,720px);display:flex;position:relative}.zy-modal--sm{max-width:400px}.zy-modal--md{max-width:520px}.zy-modal--lg{max-width:720px}.zy-modal:focus-visible{box-shadow:var(--zy-shadow-lg), var(--zy-focus-ring)}.zy-modal__header{justify-content:space-between;align-items:center;gap:var(--zy-space-3);padding:var(--zy-space-4) var(--zy-space-5);border-bottom:1px solid var(--zy-line);display:flex}.zy-modal__title{font-size:var(--zy-text-lg);font-weight:var(--zy-weight-semibold);margin:0}.zy-modal__close{border-radius:var(--zy-radius-sm);width:32px;height:32px;color:var(--zy-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.zy-modal__close:hover{background:var(--zy-bg);color:var(--zy-text)}.zy-modal__close:focus-visible{box-shadow:var(--zy-focus-ring)}.zy-modal__body{padding:var(--zy-space-5);font-size:var(--zy-text-sm);line-height:var(--zy-leading-relaxed);color:var(--zy-text-secondary);overflow:auto}.zy-modal__footer{justify-content:flex-end;gap:var(--zy-space-2);padding:var(--zy-space-3) var(--zy-space-5) var(--zy-space-4);border-top:1px solid var(--zy-line);display:flex}
.zy-dropdown{display:inline-block;position:relative}.zy-dropdown__trigger{min-height:var(--zy-control-md);padding:0 var(--zy-space-3);border:1px solid var(--zy-line);border-radius:var(--zy-radius-md);background:var(--zy-card);color:var(--zy-text);font-size:var(--zy-text-sm);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.zy-dropdown__trigger:hover{border-color:var(--zy-line-strong);background:var(--zy-bg)}.zy-dropdown__trigger:focus-visible{box-shadow:var(--zy-focus-ring)}.zy-dropdown__menu{z-index:var(--zy-z-dropdown);min-width:160px;padding:var(--zy-space-1);background:var(--zy-card);border:1px solid var(--zy-line);border-radius:var(--zy-radius-md);box-shadow:var(--zy-shadow-md);margin:0;list-style:none;position:absolute;top:calc(100% + 4px)}.zy-dropdown__menu--start{left:0}.zy-dropdown__menu--end{right:0}.zy-dropdown__item{text-align:left;width:100%;padding:var(--zy-space-2) var(--zy-space-3);border-radius:var(--zy-radius-sm);color:var(--zy-text);font-size:var(--zy-text-sm);cursor:pointer;background:0 0;border:none;display:block}.zy-dropdown__item:hover:not(:disabled){background:var(--zy-brand-subtle);color:var(--zy-brand)}.zy-dropdown__item:focus-visible{box-shadow:var(--zy-focus-ring)}.zy-dropdown__item--danger{color:var(--zy-danger)}.zy-dropdown__item--danger:hover:not(:disabled){background:var(--zy-danger-bg);color:var(--zy-danger)}.zy-dropdown__item:disabled{color:var(--zy-text-disabled);cursor:not-allowed}
.zy-tabs__list{gap:var(--zy-space-1);border-bottom:1px solid var(--zy-line);display:flex}.zy-tabs__tab{height:40px;padding:0 var(--zy-space-4);color:var(--zy-muted);font-size:var(--zy-text-sm);font-weight:var(--zy-weight-medium);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;position:relative}.zy-tabs__tab:hover:not(:disabled){color:var(--zy-brand)}.zy-tabs__tab--active{color:var(--zy-brand);border-bottom-color:var(--zy-brand)}.zy-tabs__tab:focus-visible{box-shadow:var(--zy-focus-ring);border-radius:var(--zy-radius-sm) var(--zy-radius-sm) 0 0}.zy-tabs__tab:disabled{opacity:.45;cursor:not-allowed}.zy-tabs__panel{padding:var(--zy-space-4) 0;font-size:var(--zy-text-sm);color:var(--zy-text-secondary);line-height:var(--zy-leading-relaxed)}
.zy-pagination{align-items:center;gap:var(--zy-space-1);flex-wrap:wrap;display:flex}.zy-pagination__btn{min-width:36px;height:36px;padding:0 var(--zy-space-2);border:1px solid var(--zy-line);border-radius:var(--zy-radius-md);background:var(--zy-card);color:var(--zy-text);font-size:var(--zy-text-sm);cursor:pointer}.zy-pagination__btn:hover:not(:disabled):not(.zy-pagination__btn--active){border-color:var(--zy-brand-light);color:var(--zy-brand)}.zy-pagination__btn--active{background:var(--zy-brand);border-color:var(--zy-brand);color:var(--zy-text-inverse);font-weight:var(--zy-weight-medium)}.zy-pagination__btn:focus-visible{box-shadow:var(--zy-focus-ring)}.zy-pagination__btn:disabled{opacity:.45;cursor:not-allowed}.zy-pagination__ellipsis{text-align:center;width:28px;color:var(--zy-muted)}
.zy-state{text-align:center;padding:var(--zy-space-10) var(--zy-space-6);align-items:center;gap:var(--zy-space-2);flex-direction:column;display:flex}.zy-state__icon{border-radius:var(--zy-radius-lg);background:var(--zy-brand-subtle);width:56px;height:56px;color:var(--zy-brand);margin-bottom:var(--zy-space-2);justify-content:center;align-items:center;display:inline-flex}.zy-state__icon--danger{background:var(--zy-danger-bg);color:var(--zy-danger)}.zy-state__title{font-size:var(--zy-text-lg);font-weight:var(--zy-weight-semibold);color:var(--zy-text);margin:0}.zy-state__desc{margin:0 0 var(--zy-space-3);max-width:360px;font-size:var(--zy-text-sm);color:var(--zy-muted);line-height:var(--zy-leading-relaxed)}
.zy-spinner{align-items:center;gap:var(--zy-space-2);color:var(--zy-brand);font-size:var(--zy-text-sm);display:inline-flex}.zy-spinner__circle{border:2px solid var(--zy-brand-subtle);border-top-color:var(--zy-brand);border-radius:50%;animation:.7s linear infinite zy-spin}.zy-spinner--sm .zy-spinner__circle{width:14px;height:14px}.zy-spinner--md .zy-spinner__circle{width:20px;height:20px}.zy-spinner--lg .zy-spinner__circle{width:28px;height:28px}.zy-spinner__text{color:var(--zy-muted)}@keyframes zy-spin{to{transform:rotate(360deg)}}
