@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton-item,.skeleton-button,.skeleton-input,.skeleton-title,.skeleton-label,.skeleton-text,.skeleton-icon{background:linear-gradient(90deg,var(--skeleton-base, rgba(255, 255, 255, .06)) 0%,var(--skeleton-highlight, rgba(255, 255, 255, .12)) 50%,var(--skeleton-base, rgba(255, 255, 255, .06)) 100%);background-size:1000px 100%;animation:shimmer 2s infinite;border-radius:6px}.skeleton-breadcrumb{display:flex;align-items:center;gap:8px;padding:8px 16px;height:32px}.skeleton-breadcrumb .skeleton-item{height:20px}.skeleton-breadcrumb .skeleton-small{width:60px}.skeleton-breadcrumb .skeleton-medium{width:120px}.skeleton-breadcrumb .skeleton-divider{width:1px;height:16px;background:var(--border, rgba(42, 51, 72, .6));animation:none}.skeleton-panel{display:flex;flex-direction:column;gap:16px;padding:16px;background:var(--surface, rgba(22, 27, 39, .7));border:1px solid var(--border, rgba(42, 51, 72, .6));border-radius:12px;min-height:300px}.skeleton-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.skeleton-title{height:16px;flex:1}.skeleton-large{width:100%}.skeleton-icon{width:24px;height:24px;flex-shrink:0}.skeleton-content{display:flex;flex-direction:column;gap:12px}.skeleton-label{height:12px;width:80px}.skeleton-input{height:32px;width:100%}.skeleton-full{width:100%}.skeleton-toolbar{display:flex;align-items:center;gap:8px;padding:8px 16px;height:40px;background:var(--surface, rgba(22, 27, 39, .7));border-bottom:1px solid var(--border, rgba(42, 51, 72, .6))}.skeleton-button{width:32px;height:32px;border-radius:6px;flex-shrink:0}.skeleton-divider-vertical{width:1px;height:24px;background:var(--border, rgba(42, 51, 72, .6));animation:none;margin:0 4px}.skeleton-manual{display:flex;flex-direction:column;gap:24px;padding:24px;background:var(--surface, rgba(22, 27, 39, .7));min-height:100%}.skeleton-header-manual{border-bottom:1px solid var(--border, rgba(42, 51, 72, .6));padding-bottom:16px}.skeleton-header-manual .skeleton-title{height:24px;width:200px}.skeleton-content-manual{display:flex;flex-direction:column;gap:12px}.skeleton-text{height:14px;border-radius:4px}@media(prefers-reduced-motion:reduce){.skeleton-item,.skeleton-button,.skeleton-input,.skeleton-title,.skeleton-label,.skeleton-text,.skeleton-icon{animation:none;background:var(--skeleton-base, rgba(255, 255, 255, .06))}}.plugin-browser-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:pbmFadeIn .15s ease-out}.plugin-browser-modal{background:var(--bg-primary, #ffffff);width:min(92vw,960px);max-height:86vh;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d;border:1px solid var(--border-color, #e2e8f0);color:var(--text-primary, #0f172a);animation:pbmSlideIn .2s ease-out}.plugin-browser-modal:focus{outline:none}.plugin-browser-header{padding:18px 22px;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-secondary, #f8fafc);display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.plugin-browser-header h2{margin:0;font-size:var(--text-xl, 1.25rem);font-weight:650;letter-spacing:-.01em}.plugin-browser-header .close-btn{background:none;border:none;font-size:24px;line-height:1;padding:2px 8px;border-radius:6px;cursor:pointer;color:var(--text-secondary, #475569);transition:background .15s ease}.plugin-browser-header .close-btn:hover{background:var(--bg-tertiary, #f1f5f9);color:var(--text-primary, #0f172a)}.plugin-browser-content{padding:20px 22px 24px;overflow-y:auto;flex:1}.plugin-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;align-items:stretch}.plugin-card{background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s ease,box-shadow .15s ease}.plugin-card:hover{border-color:var(--accent, #3b82f6);box-shadow:var(--shadow-sm, 0 1px 3px rgba(15, 23, 42, .1))}.plugin-card.revoked{border-color:var(--danger, #ef4444)}.plugin-card.revoked:hover{border-color:var(--danger, #ef4444);box-shadow:none}.plugin-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.pbm-header-actions{display:flex;align-items:center;gap:8px}.pbm-like-btn{display:inline-flex;align-items:center;gap:4px;background:var(--bg-tertiary, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);border-radius:999px;padding:3px 8px;font-size:var(--text-xs, .75rem);font-weight:600;color:var(--text-secondary, #475569);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}.pbm-like-btn:hover{background:color-mix(in srgb,var(--danger, #ef4444) 12%,transparent);border-color:color-mix(in srgb,var(--danger, #ef4444) 30%,transparent);color:var(--danger, #ef4444)}.pbm-like-btn.liked{background:color-mix(in srgb,var(--danger, #ef4444) 16%,transparent);border-color:var(--danger, #ef4444);color:var(--danger, #ef4444)}.pbm-like-btn:active{transform:scale(.94)}.pbm-like-count{font-size:var(--text-xs, .75rem);font-variant-numeric:tabular-nums}.plugin-card-header h3{margin:0;font-size:var(--text-lg, 1.05rem);font-weight:620;line-height:1.3}.version{font-size:var(--text-xs, .7rem);color:var(--text-muted, #64748b);font-weight:500;white-space:nowrap}.author{font-size:var(--text-sm, .8125rem);color:var(--text-secondary, #475569);margin:-4px 0 0}.pbm-author-profile{display:flex;flex-direction:column;gap:4px;margin:-6px 0 2px}.pbm-author-headline{font-size:var(--text-xs, .75rem);color:var(--text-muted, #64748b);line-height:1.3}.pbm-author-links{display:flex;align-items:center;gap:8px}.pbm-social-link{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs, .7rem);font-weight:600;text-decoration:none;padding:2px 7px;border-radius:4px;border:1px solid var(--border-color, #e2e8f0);background:var(--bg-tertiary, #f1f5f9);color:var(--text-secondary, #475569);transition:background .15s ease,color .15s ease,border-color .15s ease}.pbm-social-link.linkedin:hover{background:color-mix(in srgb,#0a66c2 14%,transparent);border-color:#0a66c2;color:#0a66c2}.pbm-social-link.github:hover{background:color-mix(in srgb,var(--accent, #3b82f6) 14%,transparent);border-color:var(--accent, #3b82f6);color:var(--accent, #3b82f6)}.description{font-size:var(--text-sm, .8125rem);line-height:1.5;margin:0;color:var(--text-primary, #0f172a);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;transition:max-height .2s ease}.description.expanded{display:block;-webkit-line-clamp:unset;overflow:visible}.pbm-details-toggle{background:none;border:none;padding:0;margin-top:-2px;font-size:var(--text-xs, .75rem);font-weight:600;color:var(--accent, #3b82f6);cursor:pointer;align-self:flex-start;text-align:left;transition:color .15s ease}.pbm-details-toggle:hover{color:var(--accent-hover, #2563eb);text-decoration:underline}.pbm-details-toggle:focus-visible{outline:2px solid var(--accent, #3b82f6);outline-offset:2px;border-radius:2px}.plugin-card.pbm-skeleton{gap:12px;pointer-events:none}.plugin-card.pbm-skeleton:hover{border-color:var(--border-color, #e2e8f0);box-shadow:none}.pbm-skeleton-line{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--bg-tertiary, #f1f5f9) 0%,var(--border-color, #e2e8f0) 50%,var(--bg-tertiary, #f1f5f9) 100%);background-size:800px 100%;animation:pbmShimmer 1.6s linear infinite}.pbm-skeleton-title{height:16px;width:55%}.pbm-skeleton-author{width:35%}.pbm-skeleton-short{width:70%}.pbm-skeleton-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border-color, #e2e8f0)}.pbm-skeleton-meta{width:40%}.pbm-skeleton-button{height:28px;width:90px;border-radius:6px}@keyframes pbmShimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@media(prefers-reduced-motion:reduce){.pbm-skeleton-line{animation:none}}.capability-badge,.source-badge,.pbm-state{font-size:var(--text-xs, .7rem);font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap}.capability-badge.green{background:color-mix(in srgb,var(--success, #10b981) 16%,transparent);color:var(--success, #10b981)}.capability-badge.yellow{background:color-mix(in srgb,var(--warning, #eab308) 20%,transparent);color:var(--warning, #eab308)}.capability-badge.red{background:color-mix(in srgb,var(--danger, #ef4444) 16%,transparent);color:var(--danger, #ef4444)}.source-badge{background:var(--bg-tertiary, #f1f5f9);color:var(--text-secondary, #475569);font-weight:500}.pbm-state.installed{background:color-mix(in srgb,var(--success, #10b981) 16%,transparent);color:var(--success, #10b981)}.pbm-state.update{background:color-mix(in srgb,var(--brand-orange, #f97316) 18%,transparent);color:var(--brand-orange, #f97316)}.pbm-state.revoked{background:color-mix(in srgb,var(--danger, #ef4444) 16%,transparent);color:var(--danger, #ef4444)}.pbm-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pbm-reason{margin:0;font-size:var(--text-xs, .75rem);color:var(--text-muted, #64748b);font-style:italic}.pbm-runtime-cost{margin:0;font-size:var(--text-xs, .75rem);color:var(--text-tertiary, #94a3b8);line-height:1.4}.pbm-notes{background:var(--bg-tertiary, #f1f5f9);border-radius:8px;padding:10px 12px;font-size:var(--text-xs, .75rem);color:var(--text-secondary, #475569)}.pbm-notes-title{display:block;font-weight:600;color:var(--brand-orange, #f97316);margin-bottom:4px}.pbm-notes p{margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.pbm-notes p.expanded{display:block;-webkit-line-clamp:unset;overflow:visible}.pbm-revoked-reason{margin:0;font-size:var(--text-xs, .75rem);font-weight:500;color:var(--danger, #ef4444)}.pbm-size{color:var(--text-muted, #64748b)}a.pbm-source-link{text-decoration:none;cursor:pointer;transition:background .15s ease,color .15s ease}a.pbm-source-link:hover{background:color-mix(in srgb,var(--accent, #3b82f6) 16%,transparent);color:var(--accent, #3b82f6)}.plugin-card-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border-color, #e2e8f0)}.validation{font-size:var(--text-xs, .75rem);color:var(--text-muted, #64748b);line-height:1.4}.pbm-installed-version{display:block}.pbm-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.install-btn,.pbm-remove-btn,.cancel-btn,.confirm-btn{font-family:inherit;font-size:var(--text-sm, .8125rem);font-weight:550;padding:7px 14px;border-radius:6px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.install-btn{background:var(--accent, #3b82f6);color:#fff;border:1px solid transparent}.install-btn:hover:not(:disabled){background:var(--accent-hover, #2563eb)}.install-btn:disabled{background:var(--bg-tertiary, #f1f5f9);color:var(--text-muted, #64748b);border-color:var(--border-color, #e2e8f0);cursor:not-allowed}.pbm-remove-btn,.cancel-btn{background:none;border:1px solid var(--border-color, #e2e8f0);color:var(--text-secondary, #475569)}.pbm-remove-btn:hover:not(:disabled){border-color:var(--danger, #ef4444);color:var(--danger, #ef4444)}.cancel-btn:hover:not(:disabled){background:var(--bg-tertiary, #f1f5f9);color:var(--text-primary, #0f172a)}.pbm-remove-btn:disabled{opacity:.5;cursor:not-allowed}.pbm-confirm-text{font-size:var(--text-xs, .75rem);color:var(--text-secondary, #475569);margin-right:auto}.pbm-subtitle{margin:4px 0 0;font-size:var(--text-sm, .8125rem);color:var(--text-secondary, #475569)}.pbm-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 22px;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-secondary, #f8fafc)}.pbm-search{flex:1 1 240px;min-width:180px;padding:7px 12px;border-radius:6px;border:1px solid var(--border-color, #e2e8f0);background:var(--bg-primary, #ffffff);color:var(--text-primary, #0f172a);font-family:inherit;font-size:var(--text-sm, .8125rem);outline:none;transition:border-color .15s ease}.pbm-search:focus{border-color:var(--accent, #3b82f6)}.pbm-search::placeholder{color:var(--text-muted, #64748b)}.pbm-sort{padding:5px 8px;border-radius:6px;border:1px solid var(--border-color, #e2e8f0);background:var(--bg-primary, #ffffff);color:var(--text-primary, #0f172a);font-family:inherit;font-size:var(--text-sm, .8125rem)}.open-filter-label{display:flex;align-items:center;gap:6px;font-size:var(--text-sm, .8125rem);color:var(--text-secondary, #475569);cursor:pointer;white-space:nowrap}.pbm-count{margin-left:auto;font-size:var(--text-xs, .75rem);color:var(--text-muted, #64748b)}.pbm-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;color:var(--text-secondary, #475569)}.permission-modal{max-width:520px}.permission-details{background:var(--bg-tertiary, #f1f5f9);padding:12px 14px;border-radius:8px;margin:16px 0}.permission-details h4{margin:0 0 8px;font-size:var(--text-sm, .8125rem)}.permission-details ul{margin:0;padding-left:20px;font-size:var(--text-sm, .8125rem);color:var(--text-secondary, #475569)}.warning-text{color:var(--warning, #eab308);font-size:var(--text-sm, .8125rem);font-weight:500;margin-bottom:20px}.permission-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-btn{background:var(--warning, #eab308);color:#1a1a1a;border:1px solid transparent}.confirm-btn:hover:not(:disabled){filter:brightness(1.08)}@media(max-width:640px){.plugin-browser-modal{width:96vw;max-height:92vh}.plugin-list{grid-template-columns:1fr}}@keyframes pbmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes pbmSlideIn{0%{opacity:0;transform:translateY(-16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.plugin-browser-overlay,.plugin-browser-modal{animation:none}}.confirm-host{display:flex;flex-direction:column;gap:18px;width:100%;padding:18px 20px 20px}.confirm-host-message{margin:0;font-size:13px;line-height:1.5;color:var(--text-primary);white-space:pre-line}.confirm-host-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-host-cancel,.confirm-host-confirm{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.confirm-host-cancel{border:1px solid var(--border-color);background:transparent;color:var(--text-primary)}.confirm-host-confirm{border:none;background:var(--brand-orange);color:#fff}.confirm-host-confirm.danger{background:var(--error-color)}.confirm-host-cancel:focus-visible,.confirm-host-confirm:focus-visible{outline:2px solid var(--brand-orange);outline-offset:2px}.telemetry-consent-banner{position:fixed;bottom:16px;left:16px;z-index:9999;max-width:620px;width:calc(100vw - 32px);padding:10px 14px;border-radius:10px;background:#0f172aeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(217,19%,27%,.6);box-shadow:0 12px 32px #00000073;color:#f8fafc;font-family:Inter,system-ui,-apple-system,sans-serif;animation:slideUpConsent .3s ease-out}@keyframes slideUpConsent{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.telemetry-consent-content{display:flex;align-items:center;gap:14px}.telemetry-consent-header{display:none}.telemetry-consent-title{font-size:13px;font-weight:600;color:#f87116}.telemetry-consent-text{flex:1;font-size:12px;line-height:1.45;color:#bfcad9;margin:0}.telemetry-consent-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-shrink:0}.telemetry-btn{padding:6px 14px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease-in-out;border:1px solid transparent}.telemetry-btn-primary{background:#f87116;color:#fff;border-color:#f87116}.telemetry-btn-primary:hover{background:#ed6307}.telemetry-btn-secondary{background:#ffffff14;color:#edf2f7;border-color:#48556a99}.telemetry-btn-secondary:hover{background:#ffffff26}.telemetry-btn-ghost{background:transparent;color:#9fafc6;border-color:transparent;text-decoration:underline;text-underline-offset:2px}.telemetry-btn-ghost:hover{color:#fff}@media(max-width:480px){.telemetry-consent-banner{bottom:12px;right:12px;left:12px;transform:none;width:auto;max-width:none;padding:14px 16px}.telemetry-consent-content{flex-direction:column;align-items:stretch;gap:8px}.telemetry-consent-actions{justify-content:space-between}.telemetry-btn{flex:1;text-align:center;padding:8px 6px}}.mobile-runtime-notice{position:fixed;top:calc(72px + env(safe-area-inset-top,0px));left:12px;right:12px;z-index:var(--z-drawer-panel);display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:12px;background:#0f172aeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(217,19%,27%,.6);box-shadow:0 12px 32px #00000073;color:#f8fafc;font-family:Inter,system-ui,-apple-system,sans-serif}.mobile-runtime-notice--shared-memory{border-color:#ef434399}.mobile-runtime-notice-body{display:flex;flex-direction:column;gap:6px}.mobile-runtime-notice-title{font-size:14px;font-weight:600;color:#f87116}.mobile-runtime-notice--shared-memory .mobile-runtime-notice-title{color:#f37272}.mobile-runtime-notice-text,.mobile-runtime-notice-hint{margin:0;font-size:13px;line-height:1.5;color:#bfcad9}.mobile-runtime-notice-hint{font-weight:600;color:#f8fafc}.mobile-runtime-notice-dismiss{align-self:flex-end;min-height:44px;padding:0 18px;border-radius:8px;border:none;background:#f87116;color:#fff;font-size:13px;font-weight:600;cursor:pointer}@media(min-width:768px){.mobile-runtime-notice{top:72px;left:50%;right:auto;width:min(480px,calc(100vw - 40px));transform:translate(-50%)}}.mobile-shared-viewer-bar{position:fixed;top:calc(56px + env(safe-area-inset-top,0px));left:12px;right:12px;z-index:1050;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--bg-surface, rgba(30, 30, 46, .92));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color, rgba(255, 255, 255, .15));border-radius:10px;box-shadow:0 8px 24px #00000059;animation:slide-down .25s ease-out}@keyframes slide-down{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-shared-viewer-info{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.mobile-shared-viewer-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:4px;background:#22c55e33;color:#22c55e;white-space:nowrap}.mobile-shared-viewer-title{font-size:12px;font-weight:600;color:var(--text-primary, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-shared-viewer-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.mobile-shared-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:600;border:none;cursor:pointer;transition:background .15s ease,transform .1s ease;min-height:36px}.mobile-shared-play{background:#22c55e;color:#000}.mobile-shared-play.active{background:#f59e0b;color:#000}.mobile-shared-desktop{background:var(--bg-secondary, rgba(255, 255, 255, .1));color:var(--text-primary, #fff);border:1px solid var(--border-color, rgba(255, 255, 255, .15))}.mobile-shared-lock.locked{background:#3b82f640;color:#60a5fa;border:1px solid rgba(59,130,246,.4)}.mobile-shared-lock.unlocked{background:#f59e0b40;color:#fbbf24;border:1px solid rgba(245,158,11,.4)}.mobile-shared-sensor{background:#a855f740;color:#c084fc;border:1px solid rgba(168,85,247,.4)}.mobile-shared-dismiss{background:transparent;border:none;color:var(--text-muted, #94a3b8);font-size:18px;line-height:1;padding:4px 6px;cursor:pointer;border-radius:4px}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:modalFadeIn .15s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:modalSlideIn .2s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0);background:var(--bg-secondary, #f5f5f5)}.modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary, #1a1a2e)}.modal-close-btn{background:none;border:none;font-size:24px;line-height:1;color:var(--text-secondary, #666);cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s}.modal-close-btn:hover{background:var(--bg-tertiary, #e5e5e5);color:var(--text-primary, #1a1a2e)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-input{width:100%;padding:12px 14px;border:2px solid var(--border, #e0e0e0);border-radius:8px;font-size:14px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1a1a2e);outline:none;box-sizing:border-box;transition:border-color .15s}.modal-input:focus{border-color:var(--accent, #3b82f6)}.modal-input::placeholder{color:var(--text-muted, #999)}.modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border, #e0e0e0)}.modal-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.modal-btn-primary{background:var(--accent, #3b82f6);color:#fff}.modal-btn-primary:hover:not(:disabled){background:var(--accent-hover, #2563eb)}.modal-btn-primary:disabled{background:var(--text-muted, #999);cursor:not-allowed;opacity:.6}.modal-btn-secondary{background:var(--bg-tertiary, #e5e5e5);color:var(--text-primary, #1a1a2e)}.modal-btn-secondary:hover{background:var(--border, #d0d0d0)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
