.feedback-state{--feedback-border:#94a3b847;--feedback-surface:#0f172ac7;--feedback-shadow:var(--shadow-soft);--feedback-title:var(--color-text-primary);--feedback-copy:var(--color-text-secondary);border-radius:var(--radius-lg);border:1px solid var(--feedback-border);background:var(--feedback-surface);width:min(100%,52rem);color:var(--feedback-title);box-shadow:var(--feedback-shadow);margin:0 auto;padding:1rem 1.1rem}.feedback-state--full{justify-content:center;align-items:center;min-height:60vh;display:flex}.feedback-state--subtle{background:#0f172a6b;border-color:#94a3b82e;width:min(100%,36rem);padding:.85rem 1rem;box-shadow:0 8px 28px #02081740}.feedback-state--subtle .feedback-state__title{font-size:1rem;font-weight:600}.feedback-state--subtle .feedback-state__description{opacity:.92;font-size:.88rem}.feedback-state--subtle.feedback-state--full{min-height:min(42vh,360px);padding-top:clamp(2rem,8vh,4rem);padding-bottom:clamp(2rem,8vh,4rem)}.feedback-state--subtle .feedback-state__icon{min-width:2rem;min-height:2rem;padding:.35rem}.feedback-state--subtle .feedback-state__spinner{width:.95rem;height:.95rem}.feedback-state--neutral{--feedback-border:#94a3b83d;--feedback-surface:#0f172ac7}.feedback-state--info{--feedback-border:#38bdf852;--feedback-surface:linear-gradient(135deg, #082f49d6, #0f172ae0)}.feedback-state--warning{--feedback-border:#f59e0b59;--feedback-surface:linear-gradient(135deg, #78350fe0, #0f172ae0)}.feedback-state--success{--feedback-border:#22c55e52;--feedback-surface:linear-gradient(135deg, #14532de6, #0f172ae0)}.feedback-state--error{--feedback-border:#ef444466;--feedback-surface:linear-gradient(135deg, #7f1d1de6, #0f172ae0)}.feedback-state__inner{flex-direction:column;gap:.8rem;width:100%;display:flex}.feedback-state__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);margin:0;font-size:.72rem;font-weight:700}.feedback-state__header{align-items:flex-start;gap:.9rem;display:flex}.feedback-state__icon{background:#ffffff0f;border:1px solid #ffffff29;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:2.5rem;min-height:2.5rem;padding:.45rem;display:inline-flex}.feedback-state__spinner{border:2px solid #fff3;border-top-color:currentColor;border-radius:999px;width:1.1rem;height:1.1rem;animation:.9s linear infinite feedback-spin}.feedback-state__copy{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.feedback-state__title{margin:0;font-size:1.1rem;font-weight:600;line-height:1.3}.feedback-state__description{max-width:46rem;color:var(--feedback-copy);white-space:pre-line;margin:0;line-height:1.55}.feedback-state__meta{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.feedback-state__badge{color:var(--feedback-title);background:#ffffff0f;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:.35rem;padding:.22rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.feedback-state__actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.loading-state{--loading-border:#38bdf83d;--loading-surface:#0f172ac7;--loading-copy:var(--color-text-secondary,#94a3b8);--loading-accent:#38bdf8;border:1px solid var(--loading-border);background:linear-gradient(135deg, #08152ae0, var(--loading-surface));width:min(100%,52rem);color:var(--color-text-primary,#e2e8f0);border-radius:8px;gap:.75rem;margin:0 auto;padding:1rem 1.1rem;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 40px #02081747}.loading-state--page{text-align:center;align-content:center;justify-items:center;min-height:min(52vh,440px)}.loading-state--section{width:min(100%,38rem)}.loading-state--inline{width:max-content;max-width:100%;min-height:0;box-shadow:none;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.45rem .65rem;padding:.45rem .7rem;display:inline-grid}.loading-state--full{min-height:60vh}.loading-state--subtle{background:#0f172a75;border-color:#94a3b833;box-shadow:0 8px 28px #02081738}.loading-state--info{--loading-border:#38bdf857}.loading-state--warning{--loading-border:#f59e0b5c;--loading-accent:#f59e0b}.loading-state__signal{background:#ffffff0d;border:1px solid #ffffff24;border-radius:999px;justify-content:center;align-items:center;width:2rem;height:2rem;display:inline-flex}.loading-state__signal span{border:2px solid #ffffff38;border-top-color:var(--loading-accent);border-radius:999px;width:1.05rem;height:1.05rem;animation:.95s linear infinite loading-state-spin}.loading-state--page .loading-state__signal,.loading-state--section .loading-state__signal,.loading-state--analysis .loading-state__signal{justify-self:start}.loading-state__copy{gap:.25rem;min-width:0;display:grid}.loading-state__title{margin:0;font-size:clamp(1rem,1.2vw,1.18rem);font-weight:700;line-height:1.25}.loading-state__description,.loading-state__active{color:var(--loading-copy);margin:0;line-height:1.5}.loading-state__active{color:var(--color-text-primary,#e2e8f0);font-weight:700}.loading-state__modules{flex-wrap:wrap;gap:.5rem;display:flex}.loading-state__modules span,.loading-state__actions .btn{min-height:2rem}.loading-state__modules span{color:#bae6fd;background:#38bdf814;border:1px solid #38bdf83d;border-radius:999px;align-items:center;padding:.22rem .65rem;font-size:.78rem;font-weight:700;display:inline-flex}.loading-state__analysis-output{gap:.45rem;display:grid}.loading-state__analysis-output span,.loading-state-skeleton{background:linear-gradient(110deg,#94a3b82e 8%,#e2e8f057 18%,#94a3b82e 33%) 0 0/220% 100%;border-radius:999px;height:.75rem;animation:1.35s ease-in-out infinite loading-state-shimmer;display:block}.loading-state__actions{flex-wrap:wrap;gap:.65rem;display:flex}@keyframes loading-state-spin{to{transform:rotate(360deg)}}@keyframes loading-state-shimmer{to{background-position-x:-220%}}@media (prefers-reduced-motion:reduce){.loading-state__signal span,.loading-state__analysis-output span,.loading-state-skeleton{animation:none}}.status-banner{margin:var(--space-4) auto 0;border-radius:var(--radius-lg);width:min(100%,52rem);color:var(--color-text-primary);box-shadow:var(--shadow-soft);background:#0f172ad1;border:1px solid #94a3b84d;padding:.85rem 1rem}.status-banner--success{background:linear-gradient(135deg,#14532deb,#0f172ae0);border-color:#22c55e57}.status-banner--error{background:linear-gradient(135deg,#7f1d1df0,#0f172ae0);border-color:#ef444466}.status-banner--warning{background:linear-gradient(135deg,#78350ff0,#0f172ae0);border-color:#f59e0b6b}.status-banner--info{background:linear-gradient(135deg,#082f49e6,#0f172ae0);border-color:#38bdf859}.status-banner__content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.status-banner__message{margin:0;line-height:1.5}.status-banner__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.toast-container{z-index:1000;flex-direction:column;align-items:flex-end;gap:.75rem;display:flex;position:fixed;bottom:1rem;right:1rem}.toast{border-radius:var(--radius-lg);min-width:240px;max-width:360px;color:var(--color-text-primary);background:#0f172aeb;border:1px solid #94a3b842;align-items:center;gap:.75rem;padding:.75rem .9rem;animation:.18s ease-out feedback-slide-up;display:flex;box-shadow:0 18px 30px #0f172a59}.toast-success{border-color:#22c55e57}.toast-error{border-color:#ef444466}.toast-message{flex:1;line-height:1.45}.toast-link{color:var(--color-info);margin-left:.35rem;text-decoration:underline}.toast-link:hover,.toast-link:focus{color:#bae6fd}.toast-action,.toast-dismiss{color:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;transition:background-color .15s,border-color .15s}.toast-action:hover,.toast-dismiss:hover{background:#ffffff29;border-color:#fff3}.toast-dismiss{padding:.25rem .55rem;font-size:.95rem;line-height:1}.empty-state{text-align:center;border-radius:var(--radius-lg);color:var(--color-text-secondary);background:#0f172a47;border:1px dashed #94a3b847;padding:1.6rem}.empty-state-icon{opacity:.65;margin-bottom:.75rem;font-size:2rem}.empty-state-message{font-size:.9rem;line-height:1.55}@keyframes feedback-spin{to{transform:rotate(360deg)}}@keyframes feedback-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.feedback-state{padding:.95rem}.feedback-state__header{gap:.75rem}.feedback-state__icon{min-width:2.25rem;min-height:2.25rem}.toast-container{align-items:stretch;bottom:.75rem;left:.75rem;right:.75rem}.toast{max-width:none}.status-banner__content{align-items:flex-start}}
