.btn{border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--sm{padding:6px 12px;font-size:14px}.btn--md{padding:8px 16px;font-size:16px}.btn--lg{padding:12px 24px;font-size:18px}.btn--primary{background:transparent;color:#fff;position:relative;overflow:hidden;border:none}.btn--primary:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/assets/ui/btn/button-normal-cta.webp);background-size:100% 100%;background-repeat:no-repeat;opacity:1;transition:opacity .2s;z-index:0;border-radius:6px}.btn--primary:hover:not(:disabled):before{opacity:.85;filter:brightness(1.1)}.btn--primary>*{position:relative;z-index:1}.btn--primary:hover:not(:disabled){background:transparent}.btn--secondary{background:#6b7280;color:#fff}.btn--secondary:hover:not(:disabled){background:#4b5563}.btn--danger{background:#ef4444;color:#fff}.btn--danger:hover:not(:disabled){background:#dc2626}.btn--ghost{background:transparent;color:#f0f0f0;border:none;position:relative}.btn--ghost:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/assets/ui/btn/tab-off.webp);background-size:100% 100%;background-repeat:no-repeat;opacity:.8;transition:all .2s;z-index:0;border-radius:6px}.btn--ghost:hover:not(:disabled):before{opacity:1;filter:brightness(1.2)}.btn--ghost>*{position:relative;z-index:1}.btn--ghost:hover:not(:disabled){background:transparent;color:#fff}.btn--ghost.btn--active{color:#fff;border-color:transparent}.btn--ghost.btn--active:before{background-image:url(/assets/ui/btn/btn-tab-on.webp);opacity:1}.layout{display:flex;flex-direction:column;min-height:100vh}.layout__header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;position:relative}.layout__header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/assets/ui/bar/frame-bar-holder.webp);background-size:cover;background-position:center;opacity:.7;z-index:0}.layout__header>*{position:relative;z-index:1}.layout__brand{display:flex;align-items:center;gap:16px}.layout__logo{height:40px;width:auto;object-fit:contain}.layout__title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.layout__nav{display:flex;gap:8px}.layout__main{flex:1;padding:24px;overflow-y:auto}.app{flex:1;display:flex;flex-direction:column}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a0f;--bg-secondary: #1a1a24;--bg-tertiary: #252535;--border-color: #3a3a4a;--text-primary: #f9fafb;--text-secondary: #d1d5db;--text-muted: #9ca3af;--accent: #3b82f6;--accent-hover: #2563eb;--danger: #ef4444;--success: #10b981;--warning: #f59e0b;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-xl: 0 12px 32px rgba(0, 0, 0, .6);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);background-size:cover;background-position:center;background-attachment:fixed;color:var(--text-primary);line-height:1.6;position:relative}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(59,130,246,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(168,85,247,.1) 0%,transparent 50%),linear-gradient(135deg,#0a0a0ff2,#1a1a24f2);z-index:-1}#root{min-height:100vh;display:flex;flex-direction:column}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}input,textarea,select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);padding:8px 12px;font-size:14px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-muted)}
