.icon-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:var(--border-width-default) solid transparent;background:transparent;color:var(--icon-strong);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.icon-btn:hover:not(:disabled){background:var(--surface-hover)}.icon-btn:active:not(:disabled){background:var(--surface-pressed)}.icon-btn:disabled{color:var(--text-disabled);cursor:not-allowed}.icon-btn--xs{width:var(--control-xs);height:var(--control-xs)}.icon-btn--sm{width:var(--control-sm);height:var(--control-sm)}.icon-btn--md{width:var(--control-md);height:var(--control-md)}.icon-btn--lg{width:var(--control-lg);height:var(--control-lg)}.icon-btn--bordered{background:var(--surface-default);border-color:var(--border-input)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);background:var(--surface-scrim)}.modal{position:fixed;z-index:var(--z-modal);top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;max-height:85vh;background:var(--surface-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-overlay-md)}.modal--sm{width:var(--modal-width-sm)}.modal--md{width:var(--modal-width-md)}.modal--lg{width:var(--modal-width-lg)}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-12);padding:var(--space-16);border-bottom:var(--border-width-default) solid var(--border-subtle)}.modal__title{font-size:var(--text-title-xs-size);line-height:var(--text-title-xs-lh);letter-spacing:var(--text-title-xs-ls);font-weight:var(--weight-semibold)}.modal__description{margin-top:var(--space-4);font-size:var(--text-body-size);line-height:var(--text-body-lh);color:var(--text-secondary)}.modal__body{padding:var(--space-16);overflow-y:auto}.modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-8);padding:var(--space-16);border-top:var(--border-width-default) solid var(--border-subtle)}.drawer{position:fixed;z-index:var(--z-modal);top:0;right:0;bottom:0;width:var(--drawer-width);max-width:100vw;display:flex;flex-direction:column;background:var(--surface-default);border-left:var(--border-width-default) solid var(--border-subtle);box-shadow:var(--shadow-overlay-md)}.drawer--left{right:auto;left:0;width:var(--sidebar-width);border-left:none;border-right:var(--border-width-default) solid var(--border-subtle)}.surface-float{z-index:var(--z-dropdown);min-width:var(--menu-min-width);padding:var(--space-4);background:var(--surface-default);border:var(--border-width-default) solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-overlay-sm)}.menu-item{display:flex;align-items:center;gap:var(--space-8);height:var(--control-md);padding:0 var(--space-8);border-radius:var(--radius-lg);font-size:var(--text-body-size);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.menu-item[data-highlighted]{background:var(--surface-hover)}.menu-item[data-disabled]{color:var(--text-disabled);cursor:not-allowed}.menu-item--danger{color:var(--text-danger)}.menu-separator{height:var(--border-width-default);margin:var(--space-4) 0;background:var(--border-subtle)}.tooltip{z-index:var(--z-tooltip);max-width:var(--tooltip-max-width);padding:var(--space-4) var(--space-8);background:var(--surface-inverse);color:var(--text-inverse);border-radius:var(--radius-lg);font-size:var(--text-caption-size);line-height:var(--text-caption-lh)}.popover{padding:var(--space-12)}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden;border-radius:var(--radius-full);background:var(--warm-150);color:var(--text-secondary);font-size:var(--text-body-sm-size);line-height:var(--text-body-sm-lh);font-weight:var(--weight-medium);text-transform:uppercase}.avatar--20,.avatar--24{font-size:var(--text-caption-size);line-height:var(--text-caption-lh)}.avatar--20{width:var(--space-20);height:var(--space-20)}.avatar--24{width:var(--space-24);height:var(--space-24)}.avatar--32{width:var(--space-32);height:var(--space-32)}.avatar--40{width:var(--space-40);height:var(--space-40)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-16);margin-bottom:var(--space-32)}.page-header__title{font-size:var(--text-title-md-size);line-height:var(--text-title-md-lh);letter-spacing:var(--text-title-md-ls);font-weight:var(--weight-semibold);color:var(--text-primary)}.page-header__description{margin-top:var(--space-4);font-size:var(--text-body-size);line-height:var(--text-body-lh);color:var(--text-secondary);max-width:var(--reading-max-width)}.page-header__actions{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.controls-row{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-16)}.breadcrumb,.breadcrumb__list,.breadcrumb__item{display:flex;align-items:center;gap:var(--space-4)}.breadcrumb__link{font-size:var(--text-caption-size);line-height:var(--text-caption-lh);color:var(--text-secondary)}.breadcrumb__current{font-size:var(--text-caption-size);line-height:var(--text-caption-lh);color:var(--text-primary)}.breadcrumb__sep{color:var(--icon-default)}.sidebar-item{position:relative;display:flex;align-items:center;gap:var(--space-8);height:var(--control-md);padding:0 var(--space-8);border-radius:var(--radius-lg);font-size:var(--text-body-size);color:var(--text-secondary);text-decoration:none}.sidebar-item:hover{background:var(--surface-hover);text-decoration:none}.sidebar-item--active{background:var(--surface-selected);color:var(--text-primary);font-weight:var(--weight-medium)}.sidebar-item--active:before{content:"";position:absolute;left:0;top:var(--space-4);bottom:var(--space-4);width:var(--border-width-strong);border-radius:var(--radius-full);background:var(--border-focus)}.sidebar-item--collapsed{justify-content:center;padding:0;width:var(--control-md)}.sidebar-item__icon{flex:none;color:inherit}.sidebar-item__count{margin-left:auto;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-caption-size);color:var(--text-secondary)}
