.ui-btn{--btn-tone:var(--ui-accent);border-radius:var(--ui-radius);border:1px solid var(--ui-border);background:var(--surface-2);color:var(--ui-text-muted);cursor:pointer;font-family:inherit;font-size:var(--text-md);transition:background var(--ui-dur) var(--ui-ease), border-color var(--ui-dur) var(--ui-ease), color var(--ui-dur) var(--ui-ease), box-shadow var(--ui-dur) var(--ui-ease), transform var(--ui-dur) var(--ui-ease);justify-content:center;align-items:center;gap:.35rem;padding:6px 14px;font-weight:500;line-height:1.2;display:inline-flex}.ui-btn:hover{background:var(--surface-3);border-color:var(--ui-border-strong);color:var(--ui-text)}.ui-btn:focus-visible{box-shadow:var(--glow-focus);outline:none}.ui-btn:active{transform:scale(.96)}.ui-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.ui-btn--sm{min-height:28px;padding:2px 10px;font-size:.8rem}.ui-btn--primary{background:color-mix(in srgb, var(--btn-tone) 60%, #000);color:#fff;border-color:#0000}.ui-btn--primary:hover{background:color-mix(in srgb, var(--btn-tone) 50%, #000);border-color:#0000}.ui-btn.is-active{background:color-mix(in srgb, var(--btn-tone) 15%, var(--surface-3));border-color:var(--btn-tone);color:var(--ui-text);box-shadow:0 0 8px color-mix(in srgb, var(--btn-tone) 20%, transparent)}.ui-btn.is-active:hover{background:color-mix(in srgb, var(--btn-tone) 25%, var(--surface-3-hover))}@media (width>=1024px){.ui-btn.is-active.nav-link{position:relative}.ui-btn.is-active.nav-link:before{content:"";background:var(--btn-tone);width:3px;height:64%;box-shadow:0 0 8px var(--btn-tone);border-radius:0 2px 2px 0;position:absolute;top:18%;left:0}}.ui-input,.ui-select{box-sizing:border-box;background:var(--surface-input);width:100%;max-width:100%;color:var(--ui-text);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius);font-family:inherit;font-size:var(--text-base);transition:border-color var(--ui-dur) var(--ui-ease), box-shadow var(--ui-dur) var(--ui-ease);padding:4px 8px}.ui-input:hover,.ui-select:hover{border-color:var(--ui-border-hover)}.ui-input:focus,.ui-select:focus{border-color:var(--ui-accent-hover);box-shadow:var(--glow-focus);outline:none}.ui-select{cursor:pointer}.ui-surface{background:var(--surface-2);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);padding:1rem}.ui-surface--glass{background:var(--surface-2-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ui-surface--elev-1{box-shadow:var(--elev-1)}.ui-surface--elev-2{box-shadow:var(--elev-2)}.ui-surface--hover{transition:transform var(--ui-dur-slow) var(--ui-ease), box-shadow var(--ui-dur-slow) var(--ui-ease), border-color var(--ui-dur-slow) var(--ui-ease)}.ui-surface--hover:hover{box-shadow:var(--elev-2);border-color:var(--ui-border-strong);transform:translateY(-2px)}.ui-surface--accent{border-top:2px solid color-mix(in srgb, var(--accent-color,var(--ui-accent)) 60%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--accent-color,var(--ui-accent)) 8%, var(--surface-2)) 0%, var(--surface-2) 45%)}.ui-badge{font-family:inherit;font-size:.75rem;font-weight:600;line-height:inherit;letter-spacing:.02em;appearance:none;border-radius:var(--ui-radius-sm);border-radius:var(--ui-radius-sm,4px);background:var(--surface-3);color:var(--ui-text-muted);white-space:nowrap;transition:background var(--ui-dur) var(--ui-ease), border-color var(--ui-dur) var(--ui-ease), color var(--ui-dur) var(--ui-ease), transform var(--ui-dur) var(--ui-ease), box-shadow var(--ui-dur) var(--ui-ease);border:1px solid #0000;align-items:center;gap:3px;margin:0;padding:2px 7px;display:inline-flex}.ui-badge--neutral{background:var(--surface-3);color:var(--ui-text-muted);border-color:var(--ui-border)}.ui-badge--positive{background:var(--badge-positive-bg);color:var(--badge-positive-fg);border-color:var(--badge-positive-border)}.ui-badge--success{background:var(--badge-success-bg);color:var(--badge-success-fg)}.ui-badge--warning{background:var(--badge-warning-bg);color:var(--badge-warning-fg);border-color:var(--badge-warning-border)}.ui-badge--negative{background:var(--badge-negative-bg);color:var(--badge-negative-fg);border-color:var(--badge-negative-border)}.ui-badge--info{background:var(--badge-info-bg);color:var(--badge-info-fg);border-color:var(--badge-info-border)}.ui-badge--trait{background:var(--badge-trait-bg);color:var(--badge-trait-fg);border-color:var(--badge-trait-border)}.ui-badge--solid{background:color-mix(in srgb, var(--badge-bg,var(--ui-accent)) 12%, transparent);color:color-mix(in srgb, var(--badge-bg,var(--ui-accent)) 95%, var(--ui-text));border-color:color-mix(in srgb, var(--badge-bg,var(--ui-accent)) 25%, transparent);border-style:solid;border-width:1px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--surface-3) 25%, var(--surface-3-hover) 50%, var(--surface-3) 75%);border-radius:var(--ui-radius);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card-tile-enter{animation:fadeSlideIn .3s var(--ui-ease) both}.card-tile-enter:first-child{animation-delay:0s}.card-tile-enter:nth-child(2){animation-delay:30ms}.card-tile-enter:nth-child(3){animation-delay:60ms}.card-tile-enter:nth-child(4){animation-delay:90ms}.card-tile-enter:nth-child(5){animation-delay:.12s}.card-tile-enter:nth-child(6){animation-delay:.15s}.card-tile-enter:nth-child(7){animation-delay:.18s}.card-tile-enter:nth-child(8){animation-delay:.21s}.card-tile-enter:nth-child(9){animation-delay:.24s}.card-tile-enter:nth-child(10){animation-delay:.27s}.card-tile-enter:nth-child(11){animation-delay:.3s}.card-tile-enter:nth-child(12){animation-delay:.33s}.card-tile-enter:nth-child(n+13){animation-delay:.36s}@media (width<=1023px){.app-nav .ui-btn{background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;gap:2px;height:60px;min-height:60px;padding:4px 2px;font-size:.65rem}.app-nav .ui-btn:hover,.app-nav .ui-btn.is-active{background:var(--ui-accent-subtle,#8b5cf61f);box-shadow:none;border:none;border-radius:0}}.ui-tooltip{background:var(--surface-2-glass,#13131ef5);-webkit-backdrop-filter:blur(8px);border:1px solid var(--ui-border);color:var(--ui-text);box-shadow:var(--elev-2);white-space:pre-line;pointer-events:none;border-radius:6px;max-width:280px;padding:6px 10px;font-family:inherit;font-size:.78rem;line-height:1.45;animation:.1s ease-out forwards tooltipEnter}@keyframes tooltipEnter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}a:hover .ui-badge--neutral,.ui-badge--neutral.is-link:hover{background:var(--surface-3-hover);border-color:var(--ui-accent-hover);color:var(--ui-accent);box-shadow:var(--elev-1);transform:translateY(-1px)}a:active .ui-badge--neutral,.ui-badge--neutral.is-link:active{transform:translateY(0)scale(.97)}.ui-checkbox-label{color:var(--ui-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.ui-checkbox{box-sizing:border-box;cursor:pointer;width:24px;height:24px;accent-color:var(--ui-accent);padding:3px}@keyframes ui-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ui-pulse-slow{0%,to{opacity:.85;transform:scale(.98)}50%{opacity:1;transform:scale(1.02)}}.ui-spinner{border:3px solid var(--ui-border);border-top-color:var(--ui-accent);box-sizing:border-box;border-radius:50%;width:2.25rem;height:2.25rem;animation:.8s linear infinite ui-spin;display:inline-block}.ui-spinner--sm{border-width:2px;width:1.15rem;height:1.15rem}.ui-spinner--lg{border-width:4px;width:3rem;height:3rem}.ui-loading-panel{text-align:center;background:var(--surface-2);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);color:var(--ui-text-muted);animation:fadeSlideIn .3s var(--ui-ease) both;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem 2rem;display:flex}.ui-loading-panel--inline{color:var(--ui-text-muted);box-sizing:border-box;background:0 0;border:none;flex-direction:row;justify-content:flex-start;align-items:center;gap:.6rem;padding:.5rem .75rem;display:inline-flex}.ui-loading-text{font-family:var(--heading);color:#b8b8c8;letter-spacing:.01em;font-size:.9rem;font-weight:500}:root[data-theme=light] .ui-loading-text{color:#475569}.ui-loading-pulse{animation:2s ease-in-out infinite ui-pulse-slow}@keyframes ui-modal-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-modal-pop{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.ui-modal-overlay{z-index:var(--z-modal);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:ui-modal-fade .12s var(--ui-ease);background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.ui-modal{box-sizing:border-box;background:var(--surface-2);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);width:100%;max-width:410px;box-shadow:var(--elev-2);padding:1.5rem;animation:.16s cubic-bezier(.16,1,.3,1) ui-modal-pop}.ui-modal__title{margin:0 0 .5rem;font-size:1.1rem}.ui-modal__body{color:var(--ui-text-muted);margin-bottom:1.25rem;font-size:.9rem;line-height:1.5}.ui-modal__actions{justify-content:flex-end;gap:.5rem;display:flex}.card-img-pop{transition:transform var(--ui-dur) var(--ui-ease), box-shadow var(--ui-dur) var(--ui-ease), border-color var(--ui-dur) var(--ui-ease);position:relative}.card-img-pop:hover{z-index:10;transform:translateY(-4px)scale(1.03);border-color:var(--card-glow-color,var(--ui-accent))!important;box-shadow:0 8px 20px #00000080, 0 0 12px var(--card-glow-color,#8b5cf659)!important}.card-img-pop--small{transition:transform var(--ui-dur) var(--ui-ease), box-shadow var(--ui-dur) var(--ui-ease), border-color var(--ui-dur) var(--ui-ease);position:relative}.card-img-pop--small:hover{transform:translateY(-3px)scale(1.1);border-color:var(--card-glow-color,var(--ui-accent))!important;box-shadow:0 4px 8px #0006, 0 0 5px var(--card-glow-color,#8b5cf640)!important;z-index:10!important}.ui-input--error,.ui-select--error,.ui-input--error:hover,.ui-select--error:hover{border-color:var(--ui-negative)}.ui-input--error:focus,.ui-select--error:focus{border-color:var(--ui-negative);box-shadow:0 0 0 2px color-mix(in srgb, var(--ui-negative) 45%, transparent)}.ui-btn.is-loading{transition:opacity var(--ui-dur) var(--ui-ease);gap:.4rem}.ui-btn.is-loading>:not(.ui-spinner){opacity:.75}.ui-btn--primary.is-loading .ui-spinner{border-top-color:#fff}
