:root{--island-bg:#0c0a08;--island-fg:#ece5d6;--island-h:34px;--island-min:120px;--toast-w:420px}.empty-state{text-align:center;justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-16) var(--sp-5);flex-direction:column;display:flex}.empty-state.compact{padding:var(--sp-8) var(--sp-4)}.empty-state .eg{width:var(--icon-xl);height:var(--icon-xl);color:var(--label-4);display:block}.empty-state .eg svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;display:block}.empty-state h3{font-size:var(--fs-title);font-weight:var(--fw-semibold);line-height:var(--lh-title);letter-spacing:var(--tr-ui);color:var(--label)}.empty-state p{max-width:44ch;font-size:var(--fs-subhead);line-height:var(--lh-copy);color:var(--label-2)}@media (min-width:1200px){.empty-state p{max-width:52ch}}.empty-state .btn{margin-top:var(--sp-1)}.toasts{left:50%;bottom:calc(var(--sp-6) + env(safe-area-inset-bottom,0px));z-index:var(--z-toast);align-items:center;gap:var(--sp-2);width:min(var(--toast-w), calc(100vw - 2 * var(--gutter)));pointer-events:none;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}@media (max-width:767px){.toasts{bottom:calc(var(--tabbar-h) + var(--sp-3) + env(safe-area-inset-bottom,0px))}}.toast{pointer-events:auto;align-items:flex-start;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4);border-radius:var(--r-popover);background:var(--bg-raised);color:var(--label);box-shadow:var(--shadow-pop);border:var(--hairline) solid var(--separator);animation:toastin var(--dur-base) var(--ease-spring) both;display:flex}.toast .tdot{width:var(--sp-2);height:var(--sp-2);margin-top:var(--sp-1-5);border-radius:var(--r-round);background:var(--green);flex:none}.toast.warn .tdot{background:var(--orange)}.toast.error .tdot{background:var(--red)}.toast.neutral .tdot{background:var(--tint)}.toast .tbody{flex:1;min-width:0}.toast .tmsg{font-size:var(--fs-subhead);font-weight:var(--fw-semibold);line-height:var(--lh-ui);letter-spacing:var(--tr-ui);display:block}.toast .tdetail{margin-top:var(--sp-0-5);font-size:var(--fs-footnote);line-height:var(--lh-copy);color:var(--label-2);display:block}.toast .tact{padding:var(--sp-1) var(--sp-2);border-radius:var(--r-control);font-size:var(--fs-subhead);font-weight:var(--fw-semibold);color:var(--tint);cursor:pointer;flex:none;align-self:center}.toast .tact:hover{background:var(--tint-bg)}.toast .tx{width:var(--control-h-sm);height:var(--control-h-sm);border-radius:var(--r-round);color:var(--label-3);cursor:pointer;flex:none;align-self:center;place-items:center;display:grid}.toast .tx:hover{background:var(--fill);color:var(--label)}.toast .tx svg{width:var(--icon-sm);height:var(--icon-sm);fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round}.toast.leaving{animation:toastout var(--dur-fast) var(--ease-std) both}@keyframes toastin{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes toastout{to{opacity:0;transform:translateY(6px)}}.island{display:none}@media (max-width:767px){.island{top:calc(env(safe-area-inset-top,0px) + var(--sp-2));z-index:var(--z-float);justify-content:center;align-items:center;gap:var(--sp-2);min-width:var(--island-min);max-width:calc(100vw - 2 * var(--gutter));height:var(--island-h);padding:0 var(--sp-4);border-radius:var(--r-pill);background:var(--island-bg);color:var(--island-fg);font-family:var(--font-mono);font-size:var(--fs-meta);font-weight:var(--fw-medium);letter-spacing:var(--tr-meta);white-space:nowrap;cursor:pointer;opacity:1;transition:transform var(--dur-base) var(--ease-spring), opacity var(--dur-fast) var(--ease-std);display:flex;position:fixed;left:50%;transform:translate(-50%)scale(1)}.island[data-shown="0"]{opacity:0;pointer-events:none;transform:translate(-50%,-8px)scale(.6)}.island .dot{width:var(--sp-1-5);height:var(--sp-1-5);border-radius:var(--r-round);background:var(--tint);animation:blip var(--dur-blip) ease-in-out infinite;flex:none}.island.done .dot{background:var(--green);animation:none}.island.failed .dot{background:var(--red);animation:none}.island:focus-visible{outline:var(--focus-w) solid var(--tint);outline-offset:var(--focus-offset)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .island{box-shadow:0 0 0 var(--hairline) var(--separator)}}:root[data-theme=dark] .island{box-shadow:0 0 0 var(--hairline) var(--separator)}@media (prefers-reduced-motion:reduce){.toast,.toast.leaving{animation:none}.island{transition:none}.island .dot{animation:none}}
