.ui-icon-btn{border-radius:var(--app-radius-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--app-transition), border-color var(--app-transition), color var(--app-transition);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.ui-icon-btn:disabled{opacity:.4;cursor:not-allowed}.ui-icon-btn__icon{display:inline-flex}.ui-icon-btn--xs{width:24px;height:24px;font-size:var(--text-sm)}.ui-icon-btn--sm{width:var(--control-sm);height:var(--control-sm);font-size:var(--text-base)}.ui-icon-btn--md{width:var(--control-md);height:var(--control-md);font-size:var(--text-lg)}.ui-icon-btn--ghost{color:var(--app-text-muted);border:none}.ui-icon-btn--ghost:hover:not(:disabled){background:var(--app-surface-soft);color:var(--app-text)}.ui-icon-btn--secondary{border:1px solid var(--app-border-subtle);color:var(--app-text-muted)}.ui-icon-btn--secondary:hover:not(:disabled){border-color:var(--app-border-strong);background:var(--app-surface-soft);color:var(--app-text)}.ui-icon-btn--danger{border:1px solid var(--app-border-subtle);color:var(--app-text-muted)}.ui-icon-btn--danger:hover:not(:disabled){border-color:color-mix(in srgb, var(--app-error) 60%, transparent);background:var(--app-error-surface);color:var(--app-error)}@media (width<=768px),(pointer:coarse){.ui-icon-btn{position:relative}.ui-icon-btn:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}@media (width<=768px){.ui-icon-btn--secondary,.ui-icon-btn--danger{border-color:#0000}}.ui-modal{border:1px solid var(--app-border-subtle);border-radius:var(--app-radius-lg);background:var(--app-surface-strong);color:var(--app-text);box-shadow:var(--app-shadow-soft);max-height:90vh;padding:0}.ui-modal[open]{animation:ui-modal-in var(--transition-slow) backwards;flex-direction:column;display:flex}@keyframes ui-modal-in{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:none}}.ui-modal--sm{width:min(420px,100vw - 32px)}.ui-modal--md{width:min(540px,100vw - 32px)}.ui-modal--lg{width:min(720px,100vw - 32px)}.ui-modal--xl{width:min(960px,100vw - 32px)}.ui-modal--full{width:min(1200px,100vw - 32px)}.ui-modal::backdrop{background:var(--app-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ui-modal__inner{flex-direction:column;flex:auto;min-height:0;display:flex}.ui-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--app-border-subtle);flex-shrink:0;display:flex}.ui-modal__header-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.ui-modal__title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--app-text);letter-spacing:-.01em;border-radius:var(--app-radius-sm);margin:0;line-height:1.3}.ui-modal__description{font-size:var(--text-xs);color:var(--app-text-muted);margin:0;line-height:1.5}.ui-modal__body{padding:var(--space-5);flex:1;overflow-y:auto}.ui-modal__footer{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--app-border-subtle);flex-shrink:0;display:flex}.ui-modal-btn{align-items:center;gap:var(--space-2);height:var(--control-md);padding:0 var(--space-4);border-radius:var(--app-radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--app-transition), border-color var(--app-transition), color var(--app-transition);display:inline-flex}.ui-modal-btn:disabled{opacity:.55;cursor:not-allowed}.ui-modal-btn--secondary{border:1px solid var(--app-border-subtle);color:var(--app-text-muted);background:0 0}.ui-modal-btn--secondary:hover:not(:disabled){background:var(--app-surface-soft);border-color:var(--app-border-strong);color:var(--app-text)}.ui-modal-btn--primary{background:var(--app-accent);color:var(--app-accent-ink);border:1px solid #0000}.ui-modal-btn--primary:hover:not(:disabled){background:var(--app-accent-strong)}.ui-modal-btn--danger{border:1px solid color-mix(in srgb, var(--app-error) 60%, transparent);color:var(--app-error);background:0 0}.ui-modal-btn--danger:hover:not(:disabled){background:var(--app-error-surface)}@media (width<=768px),(pointer:coarse){.ui-modal-btn{position:relative}.ui-modal-btn:after{content:"";height:44px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}}.inline-error{color:var(--app-error);font-size:var(--text-xs);margin:0}.inline-error--banner{align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2);border-radius:var(--app-radius-sm);background:var(--app-danger-surface);display:flex}.inline-error__icon{flex:none;width:1em;height:1em}.inline-error__message{flex:auto}.inline-error__retry{height:var(--control-sm);padding:0 var(--space-3);border:1px solid var(--app-border-subtle);border-radius:var(--app-radius-sm);color:var(--app-text);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--app-transition), border-color var(--app-transition), color var(--app-transition);background:0 0;flex:none;font-family:inherit}.inline-error__retry:hover:not(:disabled){border-color:var(--app-border-strong);background:var(--app-surface-soft)}.inline-error__retry:disabled{cursor:not-allowed;opacity:.6}.inline-error__retry-icon{width:1em;height:1em}@media (width<=768px),(pointer:coarse){.inline-error__retry{position:relative}.inline-error__retry:after{content:"";height:44px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}}
