:root{--color-canvas: #000000;--color-surface: #0a0a0a;--color-bg: #000000;--color-bg-elevated: #0a0a0a;--color-bg-gray: #111111;--color-bg-gray-light: #1a1a1a;--color-text: #ededed;--color-text-muted: #888888;--color-text-secondary: #666666;--color-border: #222222;--color-border-light: #333333;--color-accent: #ffffff;--color-accent-hover: #eaeaea;--color-accent-solid: #ffffff;--color-accent-dark: #a1a1a1;--color-on-accent: #000000;--color-link: #0070f3;--color-success: #3ecf8e;--color-warning: #f5a623;--color-danger: #e5484d;--font-sans: "Geist Sans", "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif: "Geist Sans", "Geist", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--radius: 8px;--radius-sm: 6px;--radius-lg: 12px;--radius-control: 999px;--radius-textarea: 12px;--control-h: 40px;--control-h-sm: 32px;--shadow-card-hover: 0 0 0 1px rgba(255, 255, 255, .08);--ease: cubic-bezier(.32, .72, 0, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-soft: cubic-bezier(.25, .1, .25, 1);--header-h: 64px;--sidebar-w: 260px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}html,body{margin:0;padding:0;width:100%;min-height:100%;font-family:var(--font-sans);background:var(--color-canvas);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;min-height:100%;min-height:100dvh}::selection{background:#ffffff2e;color:#fff}a{color:inherit}button,input,select,textarea{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(255,255,255,.45);outline-offset:2px}.btn,button.primary,button.btn-primary,.btn-primary,.btn-secondary,.btn.btn-secondary,button.btn-secondary,.sheet-btn,.ftp-btn,.job-btn,.trigger-btn,.btn-test,.btn-cancel,.server-card-link,.server-card-remove{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:var(--control-h-sm);padding:.45rem .95rem;font-size:.875rem;font-weight:500;line-height:1.2;border-radius:var(--radius-control);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .22s var(--ease),color .22s var(--ease),border-color .22s var(--ease),transform .18s var(--ease),opacity .18s var(--ease)}.btn:active,button.primary:active,.btn-primary:active,.sheet-btn:active,.ftp-btn:active,.job-btn:active,.trigger-btn:active{transform:scale(.98)}.btn.primary,button.primary,.btn-primary,.sheet-btn--primary,.ftp-btn--primary{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.btn.primary:hover,button.primary:hover,.btn-primary:hover,.sheet-btn--primary:hover,.ftp-btn--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-secondary,.btn.btn-secondary,button.btn-secondary,.sheet-btn,.ftp-btn,.job-btn,.trigger-btn,.btn-test,.btn-cancel,.server-card-remove{background:transparent;color:var(--color-text);border-color:var(--color-border-light)}.btn-secondary:hover,.btn.btn-secondary:hover,.sheet-btn:hover,.ftp-btn:hover,.job-btn:hover,.trigger-btn:hover,.btn-test:hover:not(:disabled),.btn-cancel:hover,.server-card-remove:hover{background:var(--color-bg-gray);border-color:#444}.ftp-btn--danger,.sheet-btn--danger{border-color:#e5484d73;color:#fda4a4}.ftp-btn--danger:hover,.sheet-btn--danger:hover{background:#e5484d1f;border-color:#e5484db3}.ftp-btn--sm,.btn.small,.job-btn,.trigger-btn{min-height:30px;padding:.3rem .7rem;font-size:.78rem}.btn.is-loading,button.is-loading{position:relative;color:transparent!important;pointer-events:none}.btn.is-loading:after,button.is-loading:after{content:"";position:absolute;width:.95rem;height:.95rem;border-radius:var(--radius-control);border:2px solid rgba(255,255,255,.2);border-top-color:#fff;animation:ui-spin .7s linear infinite}button.primary.is-loading:after,.btn-primary.is-loading:after,.btn.primary.is-loading:after{border-color:#00000026;border-top-color:#000}input[type=text],input[type=search],input[type=password],input[type=number],input[type=time],input[type=date],input[type=email],select,.form-input,.form-input-wide,.players-search,.sheet-input,.search-input,.command-input,.server-select{border-radius:var(--radius-control)!important;border:1px solid var(--color-border)!important;background:var(--color-bg)!important;color:var(--color-text)!important;min-height:var(--control-h);height:var(--control-h);box-sizing:border-box;padding:0 1rem;font-size:.875rem;line-height:1.2;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .22s var(--ease),background .22s var(--ease),box-shadow .22s var(--ease)}textarea,textarea.form-input,textarea.sheet-input,.ftp-textarea{border-radius:var(--radius-textarea)!important;border:1px solid var(--color-border)!important;background:var(--color-bg)!important;color:var(--color-text)!important;min-height:5rem;height:auto;padding:.75rem 1rem;line-height:1.45;resize:vertical}select{padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23888888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right .9rem center!important;background-color:var(--color-bg)!important}input:hover,textarea:hover,select:hover,.form-input:hover,.players-search:hover,.sheet-input:hover,.search-input:hover,.ftp-textarea:hover{border-color:#444!important}input:focus,textarea:focus,select:focus,.form-input:focus,.players-search:focus,.sheet-input:focus,.search-input:focus,.ftp-textarea:focus{border-color:#666!important;outline:none}*{scrollbar-width:thin;scrollbar-color:#3a3a3a transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#555;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}@keyframes ui-spin{to{transform:rotate(360deg)}}@keyframes ui-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-scale-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:none}}.ui-rise{animation:ui-rise .42s var(--ease-out) both}.ui-fade{animation:ui-fade .35s var(--ease-out) both}.ui-stagger>*{animation:ui-rise .4s var(--ease-out) both}.ui-stagger>*:nth-child(1){animation-delay:.02s}.ui-stagger>*:nth-child(2){animation-delay:.05s}.ui-stagger>*:nth-child(3){animation-delay:.08s}.ui-stagger>*:nth-child(4){animation-delay:.11s}.ui-stagger>*:nth-child(5){animation-delay:.14s}.ui-stagger>*:nth-child(6){animation-delay:.17s}.ui-stagger>*:nth-child(7){animation-delay:.2s}.ui-stagger>*:nth-child(8){animation-delay:.23s}.ui-stagger>*:nth-child(9){animation-delay:.26s}.ui-stagger>*:nth-child(10){animation-delay:.29s}.ui-stagger>*:nth-child(n+11){animation-delay:.32s}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:flex-start;justify-content:center;padding:calc(var(--header-h) + 1rem) 1rem max(1.5rem,env(safe-area-inset-bottom,0px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:#000000c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:ui-fade .22s var(--ease-out) both}.modal .modal-content,.modal .sheet-modal,.modal .trigger-modal,.modal .player-modal{animation:ui-scale-in .32s var(--ease-out) both;margin-top:0}@media (max-width: 720px){.modal{align-items:flex-end;padding:calc(var(--header-h) + .35rem) 0 0}}.route-fade-enter-active,.route-fade-leave-active{transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}.route-fade-enter-from,.route-fade-leave-to{opacity:0;transform:translateY(6px)}.view-fade-enter-active,.view-fade-leave-active{transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}.view-fade-enter-from,.view-fade-leave-to{opacity:0;transform:translateY(8px)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.ui-rise,.ui-fade,.ui-stagger>*,.modal,.modal .modal-content,.modal .sheet-modal,.modal .trigger-modal,.modal .player-modal{animation:none!important}.route-fade-enter-active,.route-fade-leave-active,.view-fade-enter-active,.view-fade-leave-active{transition:none!important}.btn.is-loading:after,button.is-loading:after{animation:none;opacity:.7}}
